Maison > développement back-end > tutoriel php > Comment corriger l'erreur « Numéro de paramètre invalide » dans les requêtes MySQL INSERT multiples ?

Comment corriger l'erreur « Numéro de paramètre invalide » dans les requêtes MySQL INSERT multiples ?

Susan Sarandon
Libérer: 2024-12-27 12:13:10
original
780 Les gens l'ont consulté

How to Fix the

Dépannage de l'erreur « Numéro de paramètre non valide » dans une requête à insertion multiple

Lors de la préparation d'une requête à insertion multiple, vous pouvez rencontrer l'erreur suivante :

SQLSTATE[HY093] : Numéro de paramètre invalide : le paramètre n'était pas défini

Analyse du problème :

Cette erreur se produit lorsque le nombre d'éléments dans les tableaux $values ​​et $matches ne correspondent pas. L'instruction insert attend un nombre spécifique de paramètres en fonction du nombre d'éléments dans $values, mais les données fournies dans $matches ne correspondent pas à cette attente.

Solution :

Pour résoudre ce problème, assurez-vous que les tableaux $values ​​et $matches ont le même nombre d'éléments. En règle générale, cela implique d'initialiser le tableau $values ​​avant la boucle pour garantir qu'il ne contient aucune valeur préexistante.

De plus, la colonne de hachage dans la table de base de données doit avoir un index unique.

Code refactorisé :

$matches = array('1');
$count = count($matches);
$values = [];

for ($i = 0; $i < $count; ++$i) {
    $values[] = '(?)';
}

$sql = "INSERT INTO hashes (hash) VALUES " . implode(', ', $values) . " ON DUPLICATE KEY UPDATE hash=values(hash)";
$stmt = $dbh->prepare($sql);
$data = $stmt->execute($matches);
Copier après la connexion

En adhérant à ces directives, vous pouvez éviter le "Paramètre non valide numéro" et exécutez avec succès votre requête d’insertion multiple.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal