Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Menggunakan LIMIT dengan Benar dalam Penyata Disediakan MySQL dengan PHP?

Bagaimana Menggunakan LIMIT dengan Benar dalam Penyata Disediakan MySQL dengan PHP?

Linda Hamilton
Linda Hamiltonasal
2024-12-18 01:01:09555semak imbas

How to Properly Use LIMIT in MySQL Prepared Statements with 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!

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