PDO, по-видимому, не имеет никаких средств считать количество строк возвращенным из запроса Select (mysqli
имеет num_rows
переменная).
Есть ли способ сделать это, за исключением использования count($results->fetchAll())
?
Согласно руководству, существует метод PDOStatement-> rowCount
; но его не следует использовать (цитата) :
Для большинства баз данных
PDOStatement :: rowCount ()
не возвращает количество строк, затронутых операторомSELECT
.
Вместо этого используйтеPDO :: query ()
, чтобы выполнить инструкциюSELECT COUNT (*)
с теми же предикатами , что и предполагалосьSELECT
, затем используйтеPDOStatement :: fetchColumn ()
, чтобы получить количество строк, которые будут {{1} } быть возвращенным.
После этого ваше приложение сможет выполнить правильное действие.
Если у вас уже есть набор записей и вы хотите узнать, сколько в нем строк, вам придется получить данные, используя один из методов fetch *
; и используйте count - как вы предложили.