Maison >développement back-end >Tutoriel Python >La substitution des paramètres SQLite provoque-t-elle des erreurs de liaison en Python ?
Problème de substitution des paramètres SQLite
Lors de l'utilisation de SQLite3 avec Python 2.5, un problème courant survient lors de la tentative de parcourir une liste et de récupérer des données à partir de une base de données. En utilisant le "?" suggéré par mesure de précaution pour les injections SQL entraîne souvent une erreur concernant le nombre de liaisons.
Après enquête, il devient évident que l'erreur provient de la création initiale de la table de base de données. L'instruction de création, telle que :
<code class="sql">CREATE TABLE Equipment (id INTEGER PRIMARY KEY, name TEXT, price INTEGER, weight REAL, info TEXT, ammo_cap INTEGER, availability_west TEXT, availability_east TEXT);</code>
enregistre huit liaisons, même si un seul paramètre est utilisé lors de la requête.
Pour résoudre ce problème, modifiez le code pour utiliser une séquence comme deuxième paramètre de la méthode Cursor.execute() :
<code class="python">self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])</code>
Cette modification garantit qu'une séquence est fournie à la méthode, résolvant ainsi la confusion sur le nombre de liaisons.
Référencement la documentation SQLite3 Cursor Objects peut fournir des conseils supplémentaires sur ce sujet.
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!