Heim > Backend-Entwicklung > PHP-Tutorial > Wie behebt man den Fehler „SQLSTATE[HY093]: Ungültige Parameternummer' bei mehreren Einfügungen?

Wie behebt man den Fehler „SQLSTATE[HY093]: Ungültige Parameternummer' bei mehreren Einfügungen?

Susan Sarandon
Freigeben: 2024-12-05 06:17:12
Original
359 Leute haben es durchsucht

How to Fix

Fehlerbehebung bei Datenbankfehler: Ungültige Parameternummer

Bei dem vorliegenden Problem handelt es sich um einen SQL-Abfragevorbereitungsfehler beim Versuch einer mehrfachen Einfügeoperation. Insbesondere wird die Fehlermeldung „SQLSTATE[HY093]: Ungültige Parameternummer: Parameter wurde nicht definiert“ angezeigt.

Bei der Untersuchung ist offensichtlich, dass die Anzahl der Elemente in den Arrays $values ​​und $matches nicht stimmt übereinstimmen. Diese Diskrepanz ergibt sich aus der Tatsache, dass $values ​​möglicherweise bereits vorhandene Werte vor dem Eintritt in die Schleife enthält. Um dieses Problem zu beheben, ist es unbedingt erforderlich, $values ​​als leeres Array zu initialisieren.

Zusätzlich ist es ratsam sicherzustellen, dass auf die Spalte „Hash“ ein eindeutiger Index angewendet wird. Dadurch wird verhindert, dass doppelte Werte in die Datenbank eingefügt werden.

Hier ist ein überarbeiteter Codeausschnitt, der diese Probleme behebt:

$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);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „SQLSTATE[HY093]: Ungültige Parameternummer' bei mehreren Einfügungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage