INSERT Query Timbul Isu: Bilangan Pembolehubah Ikatan Tidak Serasi dengan Penyata Disediakan
Dalam kod PHP anda, mesej ralat menunjukkan ketidakpadanan antara bilangan pembolehubah terikat dan medan dalam pernyataan yang disediakan. Khususnya, amaran itu berbunyi:
"Amaran: mysqli_stmt::bind_result(): Bilangan pembolehubah mengikat tidak sepadan dengan bilangan medan dalam pernyataan yang disediakan"
Ralat ini berlaku dalam kod berikut :
if($stmt = $conn -> prepare("INSERT INTO login(user, pass) VALUES(?, ?)")) { /* Bind parameters s - string, b - blob, i - int, etc */ $stmt -> bind_param("ss", $user, $pw); /* Execute it */ $stmt -> execute(); /* Bind results */ $stmt -> bind_result($user, $pw); /* Close statement */ $stmt -> close(); $userId = $conn->insert_id; }
Memahami Isu
Ralat berpunca daripada percubaan anda untuk mengikat pembolehubah hasil ($pengguna dan $pw) kepada pernyataan yang tidak mengembalikan sebarang keputusan. Dalam kes ini, pertanyaan INSERT tidak mempunyai klausa SELECT atau prosedur tersimpan yang mengembalikan nilai. Oleh itu, pembolehubah hasil pengikatan adalah tidak diperlukan.
Menyelesaikan Isu
Untuk menyelesaikan isu, cuma alih keluar baris yang mengikat pembolehubah hasil:
$stmt -> bind_result($user, $pw);
Dengan mengalih keluar baris ini, anda menghapuskan ketidakpadanan antara bilangan pembolehubah ikatan (0) dan bilangan medan dalam pernyataan yang disediakan (juga 0). Ini sepatutnya menyelesaikan ralat dan membenarkan kod anda untuk dilaksanakan dengan jayanya.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Bilangan Pembolehubah Ikatan Tidak Padan dengan Bilangan Medan' dalam Pertanyaan INSERT Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!