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

Bagaimana Menggunakan LIMIT dengan betul dalam Penyata Disediakan MySQL dengan PDO?

DDD
Lepaskan: 2024-11-27 15:57:14
asal
997 orang telah melayarinya

How to Correctly Use LIMIT in MySQL Prepared Statements with PDO?

Menggunakan Kata Kunci LIMIT dalam Penyata Disediakan MySQL

Apabila menggunakan pernyataan yang disediakan dalam MySQL dengan PDO, anda mungkin menghadapi masalah dengan kata kunci LIMIT. Pertanyaan berikut:

SELECT id, content, date
FROM comment
WHERE post = ?
ORDER BY date DESC
LIMIT ?, ?
Salin selepas log masuk

tidak akan berfungsi dengan pernyataan PDO yang disediakan, sambil mengubahnya kepada LIMIT 0, 10 akan. Isu ini berpunca daripada cara PDO mengendalikan parameter.

Pengikatan Parameter PDO

PDOStatement::execute() merawat semua parameter input sebagai rentetan secara lalai. Akibatnya, parameter $min dan $max dalam klausa LIMIT akan dimasukkan sebagai rentetan. MySQL kemudiannya akan menghuraikan pertanyaan sebagai:

LIMIT '0', '10'
Salin selepas log masuk

membawa kepada ralat penghuraian.

Penyelesaian

Terdapat beberapa cara untuk menyelesaikan isu ini :

  • Ikat Parameter Secara Individu: Nyatakan jenis setiap parameter menggunakan bindParam():
$comments->bindParam(1, $post, PDO::PARAM_STR);
$comments->bindParam(2, $min, PDO::PARAM_INT);
$comments->bindParam(3, $max, PDO::PARAM_INT);
Salin selepas log masuk
  • Kecualikan Parameter daripada Pertanyaan: Alih keluar parameter $min dan $max daripada pertanyaan dan tentukannya sebagai sebahagian daripada pertanyaan:
$query = sprintf('SELECT id, content, date
    FROM comment
    WHERE post = ?
    ORDER BY date DESC
    LIMIT %d, %d', $min, $max);
Salin selepas log masuk
  • Lumpuhkan Ditiru Menyediakan: Lumpuhkan persediaan yang dicontohi dalam pemacu MySQL:
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
Salin selepas log masuk

Dengan melaksanakan salah satu daripada penyelesaian ini, anda boleh berjaya menggunakan kata kunci LIMIT dengan pernyataan yang disediakan dalam MySQL.

Atas ialah kandungan terperinci Bagaimana Menggunakan LIMIT dengan betul dalam Penyata Disediakan MySQL dengan PDO?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan