Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Masalah \'Bilangan Pembolehubah Tidak Padan dengan Bilangan Parameter\' Isu dalam mysqli_bind_param()?

Bagaimana untuk Menyelesaikan Masalah \'Bilangan Pembolehubah Tidak Padan dengan Bilangan Parameter\' Isu dalam mysqli_bind_param()?

Susan Sarandon
Susan Sarandonasal
2024-10-22 12:46:02544semak imbas

How to Troubleshoot

Memahami 'Bilangan Pembolehubah Tidak Padan dengan Ralat Bilangan Parameter' dalam mysqli_bind_param()

Apabila menggunakan pernyataan yang disediakan dengan mysqli MySQL sambungan, adalah penting untuk memastikan bahawa pengikatan parameter sejajar dengan sintaks pertanyaan yang disediakan. Kegagalan berbuat demikian boleh mengakibatkan ralat seperti "Bilangan pembolehubah tidak sepadan dengan bilangan parameter dalam pernyataan yang disediakan."

Mari kita mendalami coretan kod yang disediakan untuk mengenal pasti isu:

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

$stmt->bind_param('is', $year, $make);

$stmt->execute();

Ralat timbul kerana pernyataan yang disediakan mengandungi pemegang tempat untuk nilai buat yang disertakan dalam petikan: "?'". Dalam pernyataan yang disediakan, tanda soal digunakan sebagai ruang letak untuk nilai yang akan terikat kemudian. Walau bagaimanapun, apabila ia disertakan dalam petikan, ia dianggap sebagai teks literal dan bukannya pemegang tempat.

Membetulkan Penyata Disediakan

Untuk membetulkan isu, alih keluar petikan di sekeliling yang ? pemegang tempat untuk dibuat dalam pernyataan yang disediakan:

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

$stmt->bind_param('is', $year, $make);

$stmt->execute();

Sekarang, pernyataan yang disediakan mempunyai satu ? pemegang tempat bagi setiap pemboleh ubah, tahun dan hasil.

Perkara Penting yang Perlu Diingat

  • Dalam pernyataan yang disediakan, tanda soal ialah pemegang tempat untuk nilai.
  • Jangan sertakan ruang letak dalam petikan.
  • Bilangan ruang letak dalam pernyataan yang disediakan mesti sepadan dengan bilangan pembolehubah yang anda ikat menggunakan bind_param().

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Masalah \'Bilangan Pembolehubah Tidak Padan dengan Bilangan Parameter\' Isu dalam mysqli_bind_param()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn