Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah `mysqli_stmt::bind_result()` Melemparkan Ralat Apabila Bilangan Pembolehubah Ikatan Tidak Padan dengan Lajur Set Keputusan?

Mengapakah `mysqli_stmt::bind_result()` Melemparkan Ralat Apabila Bilangan Pembolehubah Ikatan Tidak Padan dengan Lajur Set Keputusan?

Susan Sarandon
Susan Sarandonasal
2024-12-11 09:01:09198semak imbas

Why Does `mysqli_stmt::bind_result()` Throw an Error When the Number of Bind Variables Doesn't Match the Result Set Columns?

Mengikat Ketidakpadanan Pembolehubah dalam mysqli_stmt::bind_result()

Dalam PHP, apabila melaksanakan pernyataan yang disediakan menggunakan mysqli_stmt::bind_result(), bilangan pembolehubah mengikat mesti sepadan dengan bilangan medan dalam set hasil. Jika ia tidak sepadan, ralat "mysqli_stmt::bind_result(): Bilangan pembolehubah ikatan tidak sepadan dengan bilangan medan dalam pernyataan yang disediakan" akan dilemparkan.

Untuk menyelesaikan isu ini, pastikan nombor tersebut pembolehubah bind dalam bind_result() sejajar dengan bilangan lajur yang dikembalikan oleh pertanyaan. Pertimbangkan kod PHP berikut:

$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?");
$username = $_POST['name'];
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($password, $username); // Incorrect number of bind variables
$stmt->fetch();

Dalam contoh ini, pernyataan yang disediakan mendapatkan semula dua lajur, nama pengguna dan kata laluan. Walau bagaimanapun, hanya satu pembolehubah bind, $username, dinyatakan dalam bind_result(). Untuk membetulkannya, tambahkan pembolehubah bind kedua untuk $password:

$stmt->bind_result($username, $password); // Correct number of bind variables

Sintaks untuk pernyataan SELECT ialah: SELECT field1, field2, ... fieldN FROM table_name WHERE .... Setiap medan mesti diasingkan dengan koma, bukan syarat DAN.

Atas ialah kandungan terperinci Mengapakah `mysqli_stmt::bind_result()` Melemparkan Ralat Apabila Bilangan Pembolehubah Ikatan Tidak Padan dengan Lajur Set Keputusan?. 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