Maison > base de données > tutoriel mysql > Comment corriger les erreurs « Numéro de paramètre invalide » dans les requêtes MySQL INSERT multiples ?

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

Barbara Streisand
Libérer: 2024-12-09 02:15:15
original
149 Les gens l'ont consulté

How to Fix

Résolution de l'erreur « Numéro de paramètre non valide » dans les requêtes à insertion multiple

Dans le code fourni, l'erreur se produit lors de l'exécution d'une requête à insertion multiple en raison d'une incompatibilité de paramètres entre les valeurs insérées et le nombre attendu de paramètres dans la requête.

Comprendre le problème

Le code génère un tableau d'espaces réservés ($values) basé sur le nombre de correspondances ($matches). Cependant, s'il y a déjà du contenu dans le tableau $values, cela peut entraîner une différence de nombre, provoquant l'erreur.

Solution

Pour résoudre ce problème :

  • Toujours initialiser le tableau $values ​​à un état vide avant de l'utiliser dans le boucle.

    $values = [];
    Copier après la connexion
  • Assurez-vous que la colonne de hachage dans la base de données possède un index unique, essentiel au bon fonctionnement de la requête.

Code révisé

$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 implémentant ces modifications, le code devrait s'exécuter avec succès sans rencontrer l'erreur d'incompatibilité des paramètres.

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