Rumah >pangkalan data >tutorial mysql >Mengapakah PDO Menambah Sebut Harga pada LIMIT Pembolehubah Klausa dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah PDO Menambah Sebut Harga pada LIMIT Pembolehubah Klausa dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Patricia Arquetteasal
2025-01-24 00:17:10253semak imbas

Why Does PDO Add Quotes to LIMIT Clause Variables and How Can I Fix It?

Ralat dalam Klausa LIMIT dengan Kaedah bindValue

Dalam percubaan untuk melaksanakan penomboran, pembangun mengalami ralat sintaks SQL semasa menggunakan kaedah bindValue dengan klausa LIMIT. Pertanyaan tersebut menimbulkan ralat yang menyatakan bahawa petikan tunggal sedang ditambahkan pada pembolehubah dalam bahagian LIMIT.

Setelah penyiasatan lanjut, pembangun menemui potensi hubungan dengan pepijat yang diketahui dalam PHP (bugid 44639) yang telah didokumenkan sejak 2008. Pepijat ini mencadangkan bahawa PDO mungkin menambah petikan secara automatik kepada pembolehubah bukan rentetan dalam LIMIT klausa.

Penyelesaian:

Penyelesaian untuk menyelesaikan isu ini telah disediakan dengan menghantar nilai kepada integer sebelum menghantarnya ke fungsi bind. Dengan pengubahsuaian ini, pernyataan SQL akan dapat mentafsir pembolehubah dengan betul dan melaksanakan pertanyaan tanpa ralat sintaks. Coretan kod yang dikemas kini akan kelihatan seperti berikut:

$fetchPictures->bindValue(':skip', (int) trim($_GET['skip']), PDO::PARAM_INT);

Atas ialah kandungan terperinci Mengapakah PDO Menambah Sebut Harga pada LIMIT Pembolehubah Klausa dan Bagaimana Saya Boleh Membetulkannya?. 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