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
Mary-Kate Olsenasal
2024-12-21 18:14:10918semak imbas

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 = ?");

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);

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 = ?");

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!

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