Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Liczba wierszy z PDO

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

Nie jest to najbardziej elegancki sposób na zrobienie tego, a ponadto wiąże się z dodatkowym zapytaniem.

PDO ma PDOStatement::rowCount() , co najwyraźniej nie pracować w MySQL. Co za ból.

Z dokumentu PDO:

W przypadku większości baz danych PDOStatement::rowCount() nie zwraca liczby wierszy, których dotyczy instrukcja SELECT. Zamiast tego użyj PDO::query(), aby wydać instrukcję SELECTCOUNT(*) z tymi samymi predykatami, co zamierzona instrukcja SELECT, a następnie użyj PDOStatement::fetchColumn(), aby pobrać liczbę wierszy, które zostaną zwrócone. Twoja aplikacja może wtedy wykonać odpowiednią akcję.

EDYCJA:Powyższy przykład kodu używa przygotowanej instrukcji, która w wielu przypadkach jest prawdopodobnie niepotrzebna do celów liczenia wierszy, więc:

$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. Jak ustawić parametry ORDER BY za pomocą przygotowanej instrukcji PDO?

  2. Jak szyfrować ruch bazy danych w chmurze hybrydowej

  3. Użyj relacyjnych baz danych MySQL w Fedorze 13

  4. Uzyskaj identyfikator wstawionego wiersza za pomocą C#

  5. Jaka jest domyślna nazwa ograniczenia w MySQL?