Rumah >pangkalan data >tutorial mysql >Mengapakah PDO Menambah Sebut Harga pada LIMIT Pembolehubah Klausa dan Bagaimana Saya Boleh Membetulkannya?
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!