Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `mysqli_stmt::bind_result()` Gagal Apabila Bilangan Pembolehubah Bind Tidak Padan dengan Bilangan Medan yang Dipilih?

Mengapakah `mysqli_stmt::bind_result()` Gagal Apabila Bilangan Pembolehubah Bind Tidak Padan dengan Bilangan Medan yang Dipilih?

Mary-Kate Olsen
Lepaskan: 2024-12-21 18:14:10
asal
920 orang telah melayarinya

Why Does `mysqli_stmt::bind_result()` Fail When the Number of Bind Variables Doesn't Match the Number of Selected Fields?

Memahami Ralat dalam mysqli_stmt::bind_result()

Apabila bekerja dengan pernyataan yang disediakan dalam sambungan MySQLi PHP, anda mungkin menghadapi ralat " mysqli_stmt::bind_result(): Bilangan pembolehubah ikatan tidak sepadan dengan bilangan medan dalam pernyataan yang disediakan." Isu ini berlaku apabila bilangan pembolehubah yang dijangkakan oleh pertanyaan anda tidak sepadan dengan bilangan pembolehubah yang terikat pada hasil.

Menganalisis Kod yang Diberikan

Dalam kod yang disediakan , isunya ialah dengan pernyataan SELECT yang digunakan untuk menyediakan pernyataan:

$stmt = $mysqli->prepare("SELECT username AND password FROM users WHERE username = ?");
Salin selepas log masuk

Dalam pernyataan ini, klausa SELECT menyatakan dua medan, "nama pengguna" dan "kata laluan." Walau bagaimanapun, hanya satu pembolehubah bind digunakan ($nama pengguna):

$stmt->bind_param('s', $username);
Salin selepas log masuk

Menyelesaikan Isu

Untuk membetulkan isu, klausa SELECT harus diubah suai untuk memasukkan hanya medan yang terikat dengan hasilnya. Dalam kes ini, hanya "nama pengguna" diperlukan:

$stmt = $mysqli->prepare("SELECT username FROM users WHERE username = ?");
Salin selepas log masuk

Dengan pengubahsuaian ini, bilangan medan dalam pertanyaan akan sepadan dengan bilangan pembolehubah ikatan dan ralat akan diselesaikan.

Nota Tambahan

  • Apabila menggunakan berbilang pembolehubah ikatan, pastikan terdapat bilangan pembolehubah ikatan yang sama seperti terdapat medan dalam klausa SELECT.
  • Semak dua kali sama ada jenis data pembolehubah ikatan sepadan dengan medan yang sepadan.
  • Jika anda masih menghadapi ralat, cuba menyemak pernyataan yang disediakan menggunakan $stmt->error untuk mengenal pasti sebarang kemungkinan isu sintaks atau sambungan.

Atas ialah kandungan terperinci Mengapakah `mysqli_stmt::bind_result()` Gagal Apabila Bilangan Pembolehubah Bind Tidak Padan dengan Bilangan Medan yang Dipilih?. 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