Bilangan parameter dalam pernyataan yang disediakan adalah tidak konsisten dengan bilangan pembolehubah yang terikat oleh bind_param
P粉578343994
P粉578343994 2023-08-22 23:51:55
0
1
434
<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>
P粉578343994
P粉578343994

membalas semua(1)
P粉513316221

Kenyataan anda yang disediakan adalah salah, ia sepatutnya:

$stmt = $mysqli->prepare("
    SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model
");
$stmt->bind_param('is', $year, $make);
$stmt->execute();

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()

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan