Utilisation d'instructions préparées avec MySQL en Python
Les instructions préparées fournissent un moyen sécurisé et efficace d'exécuter des requêtes SQL, et Python utilise le module MySQLdb pour faciliter ce processus.
Erreur de syntaxe dans les instructions préparées
En essayant d'utiliser des instructions préparées avec MySQL en Python, vous avez rencontré une erreur de syntaxe :
MySQL Error [1064]: You have an error in your SQL syntax
Solution
L'approche recommandée pour utiliser les instructions préparées avec MySQL en Python est de laisser le module MySQLdb gérer la préparation et l'exécution. Ceci peut être réalisé en utilisant la syntaxe suivante :
sql = ('INSERT INTO {} (date, time, tag, power) VALUES ' '(%s, %s, %s, %s)'.format(self.db_scan_table))
Dans la boucle, exécutez l'instruction préparée à l'aide de l'objet curseur MySQLdb :
self.cursor.execute(sql, (d, t, tag, power))
Approche alternative
Les applications modernes peuvent choisir d'utiliser le connecteur/Python de MySQL au lieu de MySQLdb. Connector/Python propose l'option prepare=True dans sa fabrique de curseurs, permettant une exécution efficace à l'aide du protocole binaire. Cette approche fournit un contrôle explicite sur les instructions préparées, permettant une séparation plus claire entre les instructions préparées et non préparées.
Considérations
Lors de l'utilisation de boucles, envisagez la possibilité de remplacer avec un seul appel à execute_many, ce qui vous permet d'insérer efficacement plusieurs tuples de données.
En implémentant ces solutions, vous pouvez utiliser efficacement les instructions préparées avec MySQL en Python pour améliorer la sécurité et les performances de vos opérations SQL.
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!