Rumah > pangkalan data > tutorial mysql > Ralat Param Bind MySQLi: Mengapa Bilangan Jenis Aksara Saya Tidak Padan dengan Pemegang Tempat Saya?

Ralat Param Bind MySQLi: Mengapa Bilangan Jenis Aksara Saya Tidak Padan dengan Pemegang Tempat Saya?

Patricia Arquette
Lepaskan: 2024-11-29 10:05:13
asal
357 orang telah melayarinya

MySQLi Bind Param Error: Why Does My Number of Type Characters Mismatch My Placeholders?

Ralat Param Ikat: Tidak Padan Nombor

Dalam pernyataan yang disediakan MySQLi, bilangan aksara jenis (cth. "s" untuk rentetan) dalam kaedah bind_param mesti sepadan dengan bilangan ruang letak (cth. "?") dalam SQL pertanyaan.

Ringkasan Masalah

Anda menerima ralat kerana panggilan bind_param dalam kod anda tidak sepadan dengan bilangan ruang letak dalam pernyataan yang disediakan:

$stmt->bind_param("s,s,s,s,s,s,s,...", $project_name, $status, ...);
Salin selepas log masuk

Ini mungkin disebabkan oleh ketidakpadanan antara bilangan input borang (65) dan bilangan ruang letak dalam pertanyaan.

Format Betul

Format yang betul untuk bind_param adalah seperti berikut:

$stmt->bind_param("type_characters", $variable1, $variable2, ...);
Salin selepas log masuk

di mana "type_characters" ialah rentetan yang mengandungi satu aksara bagi setiap pemegang tempat dalam pertanyaan, menunjukkan jenis data yang wujud terikat.

Mengira Jenis Aksara

Untuk mengelakkan ketidakpadanan, adalah disyorkan untuk mengira bilangan ruang letak secara manual atau menggunakan ungkapan biasa. Dalam kes anda, anda harus mengesahkan bahawa pernyataan yang disediakan mengandungi 65 ruang letak.

Contoh

Untuk pernyataan yang disediakan yang diubah suai dengan 65 ruang letak, panggilan bind_param yang betul akan be:

$stmt->bind_param("sssssssssssssssssssssssssssssssssssssssssssssssssssssssss", $project_name, $status, ...);
Salin selepas log masuk

Petua

Untuk membantu memastikan pengikatan yang betul, pertimbangkan untuk menggunakan kaedah berikut yang mengira bilangan ruang letak dalam pertanyaan SQL:

function countPlaceholders($sql) {
  return substr_count($sql, '?');
}
Salin selepas log masuk

Atas ialah kandungan terperinci Ralat Param Bind MySQLi: Mengapa Bilangan Jenis Aksara Saya Tidak Padan dengan Pemegang Tempat Saya?. 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