Rumah  >  Soal Jawab  >  teks badan

Bilangan parameter dalam pernyataan yang disediakan adalah tidak konsisten dengan bilangan pembolehubah yang terikat oleh bind_param

<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粉578343994P粉578343994396 hari yang lalu398

membalas semua(1)saya akan balas

  • P粉513316221

    P粉5133162212023-08-23 14:52:19

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

    balas
    0
  • Batalbalas