Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Pembolehubah dan Parameter Tidak Padan Menyebabkan Ralat dalam Penyata Disediakan mysqli?

Mengapa Pembolehubah dan Parameter Tidak Padan Menyebabkan Ralat dalam Penyata Disediakan mysqli?

Barbara Streisand
Barbara Streisandasal
2024-10-22 10:57:03250semak imbas

Why Did Mismatched Variables and Parameters Cause an Error in mysqli Prepared Statements?

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!

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