Rumah >pangkalan data >tutorial mysql >Mengapakah `mysqli_stmt::bind_result()` Melemparkan Ralat 'Bilangan Pembolehubah Ikatan Tidak Padan' dalam PHP?
mysqli_stmt::bind_result(): Bilangan Pembolehubah Ikatan Tidak Padan
Apabila cuba melaksanakan borang log masuk PHP menggunakan pernyataan yang disediakan, pengguna lazimnya menghadapi ralat "mysqli_stmt::bind_result(): Bilangan pembolehubah mengikat tidak sepadan dengan bilangan medan dalam pernyataan yang disediakan." Ralat ini menandakan percanggahan antara bilangan pembolehubah ikatan yang digunakan untuk menyimpan hasil pertanyaan dan bilangan sebenar medan yang dikembalikan oleh pernyataan SQL yang mendasari.
Kod Diagnostik
$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?"); $username = $_POST['name']; $stmt->bind_param('s', $username); $stmt->execute(); $stmt->bind_result($username, $password); // Incorrect field binding $stmt->fetch();
Pembetulan
Kod di atas mengandungi kesilapan dalam medannya pengikatan. Kaedah bind_result() harus mencerminkan medan sebenar yang dikembalikan oleh pernyataan SELECT. Dalam senario ini, pertanyaan mengembalikan dua medan: nama pengguna dan kata laluan. Oleh itu, kod yang betul ialah:
$stmt->bind_result($username, $password); // Corrected field binding
Petua Lanjut
Atas ialah kandungan terperinci Mengapakah `mysqli_stmt::bind_result()` Melemparkan Ralat 'Bilangan Pembolehubah Ikatan Tidak Padan' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!