get number of rows with pdo

Smudger picture Smudger · Nov 2, 2012 · Viewed 55.4k times · Source

I have a simple pdo prepared query:

$result = $db->prepare("select id, course from coursescompleted where person=:p"); 
$result ->bindParam(':p', $q, PDO::PARAM_INT);
$result->execute();
$rows = $result->fetch(PDO::FETCH_NUM);
echo $rows[0];

the echo seems to be returning the ID value of the record, not the number of records returned by the query?

any idea or explanation for this?

Answer

Stephen picture Stephen · Nov 2, 2012

You've executed a query that returns rows from the database, fetched the first row from the result into a variable and then echo'd the first column of that row.

If you want to count, do an SQL count()

$result = $db->prepare("select count(*) from coursescompleted where person=:p"); 
$result->bindParam(':p', $q, PDO::PARAM_INT);
$result->execute();
$rowCount = $result->fetchColumn(0);
echo $rowCount;