PHP PDO - Num Satırlar

3 Cevap php

PDO görünüşe satır sayısı (mysqli num_rows değişkeni vardır) bir seçme sorgusu döndürülen saymak için hiçbir anlamı vardır.

Bunu yapmanın bir yolu count($results->fetchAll()) kullanarak kısa, var mı?

3 Cevap

Kılavuza göre, PDOStatement->rowCount yöntem yoktur; ancak kullanılan (quoting) olmamalıdır:

For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement.
Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of rows that will be returned.
Your application can then perform the correct action.


If you already have a recordset, and want to know how many lines are in it, you'll have to fetch the data, using one of the fetch* methods ; and use count -- like you suggested.

mysqli in num_rows değişken ve karşılık gelen C API işlevi daha yakın olabilir, başka bir seçenek mysql_num_rows(). Yine sonuç tüm kayıtları saymak gerek kalmadan aynı bilgileri verir MySQL fonksiyonunu FOUND_ROWS() kullanmaktır.

Örnek:

$pdoDB->query('SELECT FOUND_ROWS()')->fetchColumn()

Bu soru uzun zaman önce dört yaşında ve böylece eski.

PDO görünüşe günümüzde mysql için bir seçme sorgusu döndürülen satırların sayısını saymak için tüm araçlara sahip. Bir sade bir amaç için $stmt->rowCount() kullanabilirsiniz.