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
Lepaskan: 2024-12-11 09:01:09
asal
284 orang telah melayarinya

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();
Salin selepas log masuk

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
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan