Dalam skrip PHP menggunakan MySQL, anda menghadapi isu semasa melaksanakan pernyataan yang disediakan dan menerima amaran "Bilangan pembolehubah tidak sepadan dengan bilangan parameter dalam pernyataan yang disediakan." Ini boleh berlaku apabila bilangan tanda soal dalam pernyataan yang disediakan tidak sejajar dengan bilangan pembolehubah yang terikat dalam kaedah bind_param().
Untuk menyelesaikan isu ini, pastikan bahawa bilangan tanda soal dalam pernyataan yang disediakan sepadan dengan bilangan pembolehubah yang dihantar ke bind_param(). Berikut ialah contoh coretan kod yang diperbetulkan:
<code class="php">$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model"); $stmt->bind_param('is', $year, $make); $stmt->execute();</code>
Dalam contoh ini, pernyataan yang disediakan mengandungi dua tanda soal dan kaedah bind_param() mengikat dua pembolehubah, $year dan $make. Huruf pertama dalam 'is' menentukan jenis parameter pertama (integer), dan huruf kedua menentukan jenis parameter kedua (rentetan).
Ingat, semasa menyediakan pernyataan, anda mesti menggantikan setiap pembolehubah dengan tanda soal tanpa petikan. Tanda soal dalam petikan tidak akan ditafsirkan sebagai pemegang tempat.
Atas ialah kandungan terperinci Mengapa Saya Menerima Ralat \'Bilangan Pembolehubah Tidak Padan dengan Bilangan Parameter\' dalam MySQL dengan Penyata Disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!