Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Percanggahan Antara Pembolehubah dan Parameter dalam Penyata Disediakan?

Bagaimana untuk Menyelesaikan Percanggahan Antara Pembolehubah dan Parameter dalam Penyata Disediakan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-22 12:19:03197semak imbas

How to Resolve Discrepancy Between Variables and Parameters in Prepared Statements?

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!

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