Rumah > pangkalan data > tutorial mysql > Bagaimanakah Kata Kunci LIMIT MySQL berfungsi dengan Penyata Disediakan dan Pengikatan Parameter?

Bagaimanakah Kata Kunci LIMIT MySQL berfungsi dengan Penyata Disediakan dan Pengikatan Parameter?

Linda Hamilton
Lepaskan: 2024-12-06 18:51:13
asal
535 orang telah melayarinya

How Does MySQL's LIMIT Keyword Work with Prepared Statements and Parameter Binding?

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 ?, ?
Salin selepas log masuk

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();
Salin selepas log masuk

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);
Salin selepas log masuk

Menggunakan Pemegang Tempat Kedudukan:

SELECT id, content, date
FROM comment
WHERE post = ?
ORDER BY date DESC
LIMIT ? OFFSET ?
Salin selepas log masuk
$query = $db->prepare($sql);
$query->execute([$post, $min, $max]);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan