"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > La substitution des paramètres SQLite provoque-t-elle des erreurs de liaison en Python ?

La substitution des paramètres SQLite provoque-t-elle des erreurs de liaison en Python ?

Publié le 2024-11-08
Parcourir:642

Is SQLite Parameter Substitution Causing Binding Errors in 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 :

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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729322534. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

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