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

Susan Sarandon
Lepaskan: 2024-10-22 12:46:02
asal
465 orang telah melayarinya

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();
Salin selepas log masuk

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();
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!