Mysql
 sql >> база данни >  >> RDS >> Mysql

Брой редове с PDO

$sql = "SELECT count(*) FROM `table` WHERE foo = ?"; 
$result = $con->prepare($sql); 
$result->execute([$bar]); 
$number_of_rows = $result->fetchColumn(); 

Не е най-елегантният начин да го направите, освен това включва допълнителна заявка.

PDO има PDOStatement::rowCount() , което очевидно нене работа в MySql. Каква болка.

От документа със ЗНП:

За повечето бази данни PDOStatement::rowCount() не връща броя на редовете, засегнати от оператор SELECT. Вместо това използвайте PDO::query(), за да издадете оператор SELECTCOUNT(*) със същите предикати като предвидения от вас SELECTstatement::fetchColumn(), за да извлечете броя на редовете, които ще бъдат върнати. След това приложението ви може да извърши правилното действие.

РЕДАКТИРАНЕ:Горният пример с код използва подготвен израз, който в много случаи вероятно е ненужен за целите на преброяването на редове, така че:

$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); 
echo $nRows;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да форматирате числа в MySQL

  2. Мигрирайте от Oracle към MySQL

  3. Променете формата на датата (в DB или изход) на дд/мм/гггг - PHP MySQL

  4. Производителност на UUID в MySQL?

  5. Как да проверите размера на базата данни MySQL в Linux