Bilangan parameter dalam pernyataan yang disediakan adalah tidak konsisten dengan bilangan pembolehubah yang terikat oleh bind_param
P粉578343994
2023-08-22 23:51:55
<p>Berikut ialah coretan kod saya: </p>
<pre class="brush:php;toolbar:false;">$stmt = $mysqli->prepare("PILIH model DISTINCT FROM vehicle_types
DI MANA tahun = ? DAN buat = '?' ORDER mengikut model");
$stmt->bind_param('is', $year, $make);
$stmt->execute();</pre>
<p>Apabila saya mengeluarkan nilai untuk $year dan $make, saya dapat melihat nilainya, tetapi apabila saya menjalankan skrip ini, saya mendapat nilai nol dan amaran berikut muncul dalam fail log saya: </ p> ;
<blockquote>
<p>Amaran PHP: mysqli_stmt::bind_param(): Bilangan pembolehubah tidak sepadan dengan bilangan parameter dalam pernyataan yang disediakan</p>
</blockquote>
<p>Dalam kes ini, jenis tahun dalam pangkalan data ialah int(10), saya telah cuba menukarnya kepada jenis int untuk lulus, dan make ialah varchar(20) dengan pengekodan utf8_unicode_ci. Adakah terdapat apa-apa yang saya hilang? </p>
Kenyataan anda yang disediakan adalah salah, ia sepatutnya:
Apabila anda menyediakan penyata, anda mesti menggantikan setiap pembolehubah dengan tanda soal dan bukannya petikan. Tanda soal dalam petikan tidak akan diiktiraf sebagai ruang letak.
Bilangan tanda soal mesti sama dengan bilangan pembolehubah dalam
bind_param()