Cara Kata Kunci LIMIT Berfungsi dengan Penyata Disediakan dalam MySQL
Kata kunci LIMIT dalam MySQL digunakan untuk mengehadkan bilangan baris yang dikembalikan oleh SELECT kenyataan. Ia memerlukan dua hujah integer: offset dan had.
Dalam contoh berikut, klausa LIMIT digunakan untuk memilih 10 baris pertama daripada jadual ulasan, disusun mengikut lajur tarikh dalam tertib menurun:
SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT ?, ?
Untuk melaksanakan pertanyaan ini menggunakan pernyataan yang disediakan PDO, anda akan mengikat tiga parameter pertanyaan kepada data yang sesuai jenis:
$query = $db->prepare($sql); $query->bindParam(1, $post, PDO::PARAM_STR); $query->bindParam(2, $min, PDO::PARAM_INT); $query->bindParam(3, $max, PDO::PARAM_INT); $query->execute();
Walau bagaimanapun, jika anda cuba melaksanakan pertanyaan ini dengan persediaan yang dicontohi didayakan (tetapan lalai untuk pemacu MySQL PDO), anda akan menghadapi ralat. Ini kerana pemacu MySQL akan secara automatik menghantar parameter pertanyaan kedua dan ketiga ke rentetan, yang akan menyebabkan klausa LIMIT gagal.
Untuk menyelesaikan isu ini, anda boleh melumpuhkan persediaan yang dicontohi atau menggunakan ruang letak kedudukan dan bukannya menamakan ruang letak dalam pertanyaan anda.
Melumpuhkan Ditiru Menyediakan:
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Menggunakan Pemegang Tempat Kedudukan:
SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT ? OFFSET ?
$query = $db->prepare($sql); $query->execute([$post, $min, $max]);
Atas ialah kandungan terperinci Bagaimanakah Kata Kunci LIMIT MySQL berfungsi dengan Penyata Disediakan dan Pengikatan Parameter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!