bind_param: Percanggahan antara Pembolehubah dan Parameter dalam Penyata Disediakan
Coretan kod anda menghadapi ralat: "Bilangan pembolehubah tidak sepadan dengan nombor parameter dalam pernyataan yang disediakan." Ini menunjukkan ketidakpadanan antara pembolehubah dalam fungsi bind_param() anda dan pemegang tempat (?) dalam pernyataan yang anda sediakan.
Untuk menyelesaikannya, pastikan pernyataan yang disediakan anda menggantikan semua pembolehubah dengan tanda soal dengan tepat. Alih keluar petikan di sekeliling tanda soal, seperti yang dilihat dalam kod yang diperbetulkan di bawah:
$stmt = $mysqli->prepare(" SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model "); $stmt->bind_param('is', $year, $make); $stmt->execute();
Bilangan tanda soal hendaklah sentiasa sepadan dengan bilangan pembolehubah yang dihantar ke bind_param(). Dalam kod asal anda, terdapat dua pembolehubah ($year, $make) tetapi hanya satu tanda soal dalam pernyataan yang disediakan, yang membawa kepada ralat.
Selain itu, pastikan jenis data pembolehubah sepadan dengan data jenis lajur pangkalan data. Contohnya, jika lajur tahun dalam pangkalan data ialah integer, maka $year harus dilemparkan sebagai integer sebelum diikat.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Percanggahan Antara Pembolehubah dan Parameter dalam Penyata Disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!