mysqli: "Bilangan Pembolehubah Tidak Padan dengan Bilangan Parameter"
Sebagai tindak balas kepada isu yang dihadapi semasa menggunakan pernyataan yang disediakan mysqli, puncanya terletak pada sintaks pernyataan yang disediakan yang salah. Seperti yang dinyatakan dalam respons, pembetulan berikut menyelesaikan 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();
Apabila menyediakan pernyataan, adalah penting untuk menyertakan ruang letak untuk data input dengan tanda soal. Walau bagaimanapun, dalam pernyataan asal, pemegang tempat untuk pembolehubah make telah disertakan dalam petikan, menjadikannya tidak dapat dikenali sebagai pemegang tempat. Akibatnya, bilangan tanda soal tidak sepadan dengan bilangan pembolehubah dalam bind_param().
Oleh itu, pernyataan yang disediakan diperbetulkan menghapuskan percanggahan ini dengan mengalih keluar petikan di sekeliling ? pemegang tempat, yang membolehkan pengikatan pembolehubah input yang betul menggunakan bind_param(). Ini memastikan kenyataan itu dapat dilaksanakan dengan jayanya, menghasilkan hasil yang diingini.
Atas ialah kandungan terperinci Mengapa Pembolehubah dan Parameter Tidak Padan Menyebabkan Ralat dalam Penyata Disediakan mysqli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!