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 :
CREATE TABLE Equipment (id INTEGER PRIMARY KEY, name TEXT, price INTEGER, weight REAL, info TEXT, ammo_cap INTEGER, availability_west TEXT, availability_east TEXT);
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() :
self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])
Cette modification garantit qu'une séquence est fournie à la méthode, résolvant le confusion sur le nombre de liaisons.
La référence à la documentation des objets curseur SQLite3 peut fournir des conseils supplémentaires sur ce sujet.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3