когда вы делаете COUNT (*) в своем выражении mysql, как в
$q = $db->query("SELECT COUNT(*) FROM ...");
Ваш запрос MySQL уже подсчитывает количество результатов, зачем снова считать в php? чтобы получить результат вашего mysql
$q = $db->query("SELECT COUNT(*) as counted FROM ...");
$nb = $q->fetch(PDO::FETCH_OBJ);
$nb = $nb->counted;
и $nb
будут содержать целое число, которое вы посчитали с помощью вашего оператора mysql
немного долго писать, но быстро выполнить
Edit:
извините за неправильный пост, но в качестве примера показан запрос с счетчиком в, я предлагал использовать результат mysql, но если вы не используете счетчик в sql, fetchAll () эффективен, если вы сохраните результат в переменной, которую вы выиграли не потерять линию.
$data = $dbh->query("SELECT * FROM ...");
$table = $data->fetchAll(PDO::FETCH_OBJ);
count($table)
вернет номер строки, и вы все равно сможете использовать результат после $row = $table[0]
или с помощью foreach
foreach($table as $row){
print $row->id;
}