Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membetulkan Ralat 'SQLSTATE[HY093]: Nombor parameter tidak sah' dalam Berbilang Sisipan?

Bagaimana untuk Membetulkan Ralat 'SQLSTATE[HY093]: Nombor parameter tidak sah' dalam Berbilang Sisipan?

Susan Sarandon
Susan Sarandonasal
2024-12-05 06:17:12335semak imbas

How to Fix

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!

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