Rumah >pangkalan data >tutorial mysql >Mengapakah mysqli_stmt::bind_param() Melemparkan Ralat \'Type Definition String Mismatch\'?
mysqli_stmt::bind_param(): Jenis Ketakpadanan Rentetan Definisi
Apabila melaksanakan pernyataan yang disediakan menggunakan mysqli_stmt::bind_paramcial(), itu's bilangan elemen dalam rentetan definisi jenis sepadan dengan bilangan ikatan pembolehubah. Ketidakpadanan ini sering membawa kepada mesej ralat, "Bilangan elemen dalam rentetan definisi jenis tidak sepadan dengan bilangan pembolehubah ikatan."
Pernyataan Masalah
Pertanyaan asal melibatkan 65 pembolehubah disuntik ke dalam pangkalan data menggunakan pernyataan yang disediakan. Walau bagaimanapun, terdapat percanggahan antara bilangan pembolehubah dan bilangan aksara "s" dalam rentetan definisi jenis.
Resolusi
Bilangan aksara dalam taip rentetan definisi ("s,s...") mestilah sama dengan bilangan pembolehubah mengikat dalam pertanyaan. Dalam kes ini, terdapat 65 pembolehubah ikatan, jadi rentetan definisi jenis harus mengandungi 65 aksara "s".
Contoh
// Prepare query $query3 = '... (65 bind variables here) ...'; // Prepare statement $stmt = $dbConnection->prepare($query3); // Bind parameters $stmt->bind_param( "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", // 65 variables listed here ); // Execute query $stmt->execute();
Dalam contoh ini, rentetan definisi jenis mengandungi 65 aksara "s", sepadan dengan bilangan pembolehubah dalam pertanyaan.
Perangkap Biasa
Tambahan Pertimbangan
Atas ialah kandungan terperinci Mengapakah mysqli_stmt::bind_param() Melemparkan Ralat \'Type Definition String Mismatch\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!