Select deyimi Satır Numarası alın

3 Cevap php

Ben bu var:

$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$mdbFilename", $username, $password);

$sql = "SELECT * FROM this_table";

$stmt = $dbh->query($sql);

//num of rows?

Bunu nasıl SELECT deyiminden dönen satır sayısı alabilirim?

Tüm teşekkürler

3 Cevap

Zaten MySQL ne içten, biraz verimsiz ama benim için çalışır hangi - Ben fetchAll kullanarak ve sonra bu dizi üzerinde sayılmasını kullanarak, bir çözüm bulduk.

$q = $db->query("SELECT ...");
$rows = $q->fetchAll();
$rowCount = count($rows);

Başka bir soruya gelen Chad Bu fikir sağlanan:

It seems as though the only reason this was possible with MySQL is because it internally fetched all the result rows and buffered them, to be able to give you this information. See mysql_unbuffered_query(). If you use that function instead of mysql_query(), the mysql_num_rows() function will not work. If you really need to know the number of rows while using PDO, you can fetch all of the rows from PDO into an array and then use count().

Bu kimse için yararlı olduğunu umuyoruz.

SELECT count(*) FROM this_table bir seçenek ...

İlgili rowCount:

PDOStatement :: rowCount () son DELETE, INSERT veya ilgili PDOStatement nesnesi tarafından çalıştırılan UPDATE deyiminden etkilenen satır sayısını döndürür.

PDOStatement nesnesi ile ilişkili son SQL deyimi SELECT deyimi ise bazı veritabanları bu deyim tarafından döndürülen satır sayısını döndürebilir. **

Ancak, bu davranış tüm veritabanları için garanti edilmez ve taşınabilir uygulamalar için dayanıyordu olmamalıdır.

$ Deyim-> rowCount ();