Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Menggunakan LIMIT dengan Benar dalam Penyata Disediakan MySQL dengan PHP?
LIMIT Kata Kunci pada MySQL dengan Penyata Disediakan
Apabila cuba menggunakan kata kunci LIMIT dalam pernyataan yang disediakan dengan MySQL, tingkah laku yang tidak dijangka boleh berlaku, seperti ralat menghuraikan apabila menggunakan rentetan sebagai parameter. Isu ini timbul disebabkan oleh PDO PHP merawat semua parameter sebagai rentetan secara lalai semasa pelaksanaan.
Dalam pertanyaan yang anda berikan:
SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT ?, ?
Nilai untuk parameter LIMIT sedang dimasukkan sebagai rentetan, menghasilkan dalam sintaks SQL yang tidak sah:
LIMIT '0', '10'
Untuk menyelesaikan isu ini, anda mempunyai beberapa pilihan:
Ikat Parameter dengan Jenis
Ikat LIMIT parameter secara individu, nyatakan jenis datanya:
$comments->bindParam(2, $min, PDO::PARAM_INT); $comments->bindParam(3, $min, PDO::PARAM_INT);
Pas Parameter Di Luar Penyata Disediakan
Elakkan menggunakan parameter untuk LIMIT nilai dan benamkannya terus ke dalam pertanyaan:
$query = sprintf('SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT %d, %d', $min, $max);
Lumpuhkan Persediaan Ditiru
Sesetengah pemandu meniru pernyataan yang disediakan dan boleh memetik hujah berangka secara automatik. Lumpuhkan tingkah laku ini:
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
Dengan melaksanakan salah satu pendekatan ini, anda boleh menggunakan kata kunci LIMIT dengan betul dalam pernyataan yang disediakan dalam MySQL.
Atas ialah kandungan terperinci Bagaimana Menggunakan LIMIT dengan Benar dalam Penyata Disediakan MySQL dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!