Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hitungan baris dengan PDO

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

Bukan cara yang paling elegan untuk melakukannya, ditambah lagi melibatkan kueri tambahan.

PDO memiliki PDOStatement::rowCount() , yang ternyata tidak bekerja di MySql. Sungguh menyakitkan.

Dari Dokumen PDO:

Untuk sebagian besar database, PDOSstatement::rowCount() tidak mengembalikan jumlah baris yang dipengaruhi oleh pernyataan SELECT. Sebagai gantinya, gunakanPDO::query() untuk mengeluarkan pernyataan SELECTCOUNT(*) dengan predikat yang sama seperti pernyataan SELECT yang Anda maksud, lalu gunakanPDOSstatement::fetchColumn() untuk mengambil jumlah baris yang akan dikembalikan. Aplikasi Anda kemudian dapat melakukan tindakan yang benar.

EDIT:Contoh kode di atas menggunakan pernyataan yang disiapkan, yang dalam banyak kasus mungkin tidak diperlukan untuk tujuan menghitung baris, jadi:

$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. Gunakan Kunci Utama Gabungan sebagai Kunci Asing

  2. Format tanggal penyisipan mysql PHP

  3. Kesalahan MySQL 1064 sintaks tetapi semuanya tampak baik-baik saja

  4. Cara Menemukan Nilai Non-Numerik di Kolom di MySQL

  5. Hibernate:Buat tabel Mysql InnoDB alih-alih MyISAM