Maison >développement back-end >Tutoriel Python >Comment corriger l'erreur de substitution de paramètres SQLite en Python lors de l'interrogation d'une base de données ?
Correction de l'erreur de substitution de paramètres SQLite en Python
Lors de l'interrogation itérative d'une base de données pour des valeurs spécifiques basées sur une liste, un piège courant survient dans l'utilisation du "?" méthode de substitution de paramètres. Bien que destinée à empêcher les injections SQL, cette méthode peut entraîner des erreurs si elle n'est pas utilisée correctement.
Dans le scénario décrit, l'erreur suivante se produit : "sqlite3.ProgrammingError : nombre incorrect de liaisons fournies." Cela indique que le nombre de paramètres fournis à la méthode execute() ne correspond pas au nombre attendu.
L'erreur provient de la création initiale de la table de la base de données, qui comporte 8 colonnes et nécessite donc 8 paramètres dans le requêtes d'insertion ou de mise à jour correspondantes. Cependant, lorsque vous utilisez le « ? » méthode de substitution, le deuxième paramètre doit être une séquence contenant uniquement les valeurs à lier, pas une seule chaîne.
Pour résoudre ce problème, la méthode execute() doit être appelée comme suit :
<code class="python">self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])</code>
En passant une liste avec un seul élément ([item]) comme deuxième paramètre, le nombre correct de liaisons est fourni et l'erreur est évitée. De plus, l'utilisation du formulaire suggéré est conforme aux recommandations décrites dans la référence de la bibliothèque Python pour les objets curseur sqlite3.
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!