Comment corriger l'erreur de substitution de paramètres SQLite en Python lors de l'interrogation d'une base de données ?

Barbara Streisand
Libérer: 2024-10-19 15:25:02
original
373 Les gens l'ont consulté

How to Fix SQLite Parameter Substitution Error in Python When Querying a Database?

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>
Copier après la connexion

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!

source:php
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!