Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengira Baris dengan Cekap daripada Pernyataan PDO SELECT dalam PHP?

Bagaimana untuk Mengira Baris dengan Cekap daripada Pernyataan PDO SELECT dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-11-18 08:36:02460semak imbas

How to Efficiently Count Rows from a PDO SELECT Statement in PHP?

Cara Mengira Baris dalam PHP PDO

PDO, perpustakaan standard industri untuk mengakses pangkalan data dalam PHP, tidak mempunyai kaedah khusus untuk mengira baris yang dikembalikan oleh pertanyaan SELECT. Penyelesaian biasa ialah menggunakan count($results->fetchAll()), tetapi ia bukanlah pendekatan yang paling berkesan.

PDOStatement::rowCount

The Objek pernyataan PDO mendedahkan kaedah rowCount. Bagaimanapun, menurut dokumentasi rasmi PDO:

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.

Mengira Baris dengan Set Rekod Sedia Ada

Jika anda telah mengambil data, anda boleh menggunakan fungsi kira pada tatasusunan hasil:

$stmt = $db->prepare('SELECT * FROM table');
$stmt->execute();
$rowCount = count($stmt->fetchAll(PDO::FETCH_ASSOC));

Sebagai alternatif, anda boleh bergantung pada traversal berorientasikan objek dan mengira baris secara manual:

$rowCount = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $rowCount++;
}

Ingat bahawa pengambilan semua baris ke dalam memori boleh memberi kesan kepada prestasi aplikasi, terutamanya dengan set hasil yang besar. Pertimbangkan penomboran atau teknik pengoptimuman lain seperti yang diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Baris dengan Cekap daripada Pernyataan PDO SELECT dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn