Rumah >pangkalan data >tutorial mysql >Apakah Cara Paling Cekap Mengira Baris Menggunakan PDO dalam PHP?

Apakah Cara Paling Cekap Mengira Baris Menggunakan PDO dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-24 08:59:14134semak imbas

What's the Most Efficient Way to Count Rows Using PDO in PHP?

Mengira Baris dengan PDO

Latar Belakang

Menentukan kaedah optimum untuk mendapatkan semula kiraan baris menggunakan PDO dalam PHP kekal sebagai topik perdebatan. Artikel ini meneroka pendekatan alternatif, memberikan panduan untuk pengaturcara yang mencari penyelesaian yang cekap.

Pendekatan Berpusatkan Pangkalan Data

Untuk senario di mana mengakses data sebenar tidak diperlukan, pendekatan berpusatkan pangkalan data disyorkan. Dengan kaedah ini, pangkalan data melaksanakan kiraan baris, hanya mengembalikan nilai berangka. Kod berikut menunjukkan pendekatan ini:

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

Sebagai alternatif, PDStatement::rowCount() boleh digunakan untuk mendapatkan kiraan baris apabila data itu sendiri juga diambil. Kaedah ini berfungsi dengan berkesan dengan pertanyaan buffer MySQL (didayakan secara lalai).

Pendekatan PDO-centric

Walau bagaimanapun, bergantung sepenuhnya pada PDStatement::rowCount() tidak dijamin untuk pangkalan data lain. Menurut dokumentasi PDO:

"Bagi kebanyakan pangkalan data, PDOStatement::rowCount() tidak mengembalikan bilangan baris yang terjejas oleh pernyataan SELECT."

Untuk mengatasi had ini, dokumentasi mencadangkan untuk mengeluarkan pernyataan SELECT COUNT(*) menggunakan PDO::query() dan kemudian menggunakan PDStatement::fetchColumn() untuk mendapatkan semula nilai yang diingini.

Akhir sekali, untuk pertanyaan mudah tanpa ruang letak berubah, PDO::query() boleh digunakan terus:

$nRows = $pdo->query('select count(*) from blah')->fetchColumn();
echo $nRows;

Atas ialah kandungan terperinci Apakah Cara Paling Cekap Mengira Baris Menggunakan PDO 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