Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Saya Mendapat Ralat \'Bilangan Pembolehubah Ikatan Tidak Padan\' dalam Penyata Disediakan MySQLi?

Mengapa Saya Mendapat Ralat \'Bilangan Pembolehubah Ikatan Tidak Padan\' dalam Penyata Disediakan MySQLi?

Patricia Arquette
Lepaskan: 2024-10-27 19:31:30
asal
750 orang telah melayarinya

Why Am I Getting

Bilangan Pembolehubah Ikatan Tidak Padan dalam Sisipan Penyata Disediakan

Apabila melaksanakan pernyataan INSERT menggunakan pernyataan yang disediakan MySQLi, pengguna mungkin menghadapi ralat: " Bilangan pembolehubah ikatan tidak sepadan dengan bilangan medan dalam pernyataan yang disediakan."

Isu ini timbul apabila bilangan pembolehubah ikatan yang disediakan dalam kaedah bind_param() tidak sejajar dengan bilangan ruang letak dalam pertanyaan INSERT . Contohnya, pertimbangkan coretan kod di bawah:

if($stmt = $conn->prepare("INSERT INTO login(user, pass) VALUES(?, ?)")) {

  /* Bind parameters s - string, b - blob, i - int, etc */
  $stmt->bind_param("ss", $user, $pw);

  /* Execute it */
  $stmt->execute();

  /* Bind results */
  $stmt->bind_result($user, $pw);

  /* Close statement */
  $stmt->close();
  $userId = $conn->insert_id;
}
Salin selepas log masuk

Dalam kod ini, pernyataan INSERT mempunyai dua ruang letak (?): satu untuk pengguna dan satu untuk pas. Walau bagaimanapun, kaedah bind_param() mengikat dua pembolehubah ($pengguna, $pw) kepada ruang letak. Ini mengakibatkan ralat tidak padan.

Penyelesaian adalah untuk mengalih keluar panggilan kaedah bind_result() memandangkan pernyataan INSERT tidak mengembalikan sebarang hasil. Kod yang dikemas kini di bawah memasukkan data ke dalam jadual dengan betul:

if($stmt = $conn->prepare("INSERT INTO login(user, pass) VALUES(?, ?)")) {

  /* Bind parameters s - string, b - blob, i - int, etc */
  $stmt->bind_param("ss", $user, $pw);

  /* Execute it */
  $stmt->execute();

  /* Close statement */
  $stmt->close();
  $userId = $conn->insert_id;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Bilangan Pembolehubah Ikatan Tidak Padan\' dalam Penyata Disediakan MySQLi?. 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