Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membetulkan Ralat 'SQLSTATE[HY093]: Nombor parameter tidak sah' dalam Berbilang Sisipan?
Menyelesaikan Masalah Ralat Pangkalan Data: Nombor Parameter Tidak Sah
Isu yang dihadapi melibatkan ralat penyediaan pertanyaan SQL apabila mencuba operasi sisipan berbilang. Khususnya, mesej ralat "SQLSTATE[HY093]: Nombor parameter tidak sah: parameter tidak ditakrifkan" ditemui.
Setelah disiasat, ternyata bilangan elemen dalam tatasusunan $values dan $matches tidak perlawanan. Percanggahan ini timbul daripada fakta bahawa $values mungkin mengandungi nilai sedia ada sebelum memasuki gelung. Untuk menyelesaikan isu ini, adalah penting untuk memulakan $values sebagai tatasusunan kosong.
Selain itu, adalah dinasihatkan untuk memastikan bahawa lajur "cincang" mempunyai indeks unik yang digunakan padanya. Ini akan menghalang nilai pendua daripada dimasukkan ke dalam pangkalan data.
Berikut ialah coretan kod yang disemak yang menangani isu ini:
$matches = array('1'); $count = count($matches); $values = []; for($i = 0; $i < $count; ++$i) { $values[] = '(?)'; } // INSERT INTO DATABASE $sql = "INSERT INTO hashes (hash) VALUES " . implode(', ', $values) . " ON DUPLICATE KEY UPDATE hash=values(hash)"; $stmt = $dbh->prepare($sql); $data = $stmt->execute($matches);
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'SQLSTATE[HY093]: Nombor parameter tidak sah' dalam Berbilang Sisipan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!