Rumah > pangkalan data > tutorial mysql > Mengapakah `mysqli_stmt::bind_result()` Melemparkan Ralat 'Bilangan Pembolehubah Ikatan Tidak Padan' dalam PHP?

Mengapakah `mysqli_stmt::bind_result()` Melemparkan Ralat 'Bilangan Pembolehubah Ikatan Tidak Padan' dalam PHP?

Susan Sarandon
Lepaskan: 2024-12-11 03:56:21
asal
262 orang telah melayarinya

Why Does `mysqli_stmt::bind_result()` Throw a

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

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

Petua Lanjut

  • Pastikan pernyataan SQL adalah betul. Ia harus menggunakan sintaks yang betul dan bilangan tanda soal (?) yang betul untuk mewakili pembolehubah ikatan.
  • Jenis data pembolehubah ikatan dan medan hasil mesti sepadan. Dalam kes ini, kedua-dua $username dan $password hendaklah rentetan.
  • Sentiasa gunakan pernyataan yang disediakan untuk mengelakkan kelemahan suntikan SQL.

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!

sumber:php.cn
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