Lors du développement de code Python, il est souvent nécessaire d'interagir avec des bases de données SQL à l'aide d'instructions préparées. Cela permet une protection contre les attaques par injection SQL.
Dans votre code, vous rencontrez une erreur de syntaxe lorsque vous essayez d'utiliser directement les instructions "PREPARE" et "EXECUTE". En effet, Python ne dispose pas de son propre mécanisme pour les instructions préparées et vous devez plutôt utiliser les capacités de la bibliothèque MySQLdb.
Le code corrigé devrait ressembler à ceci :
sql = ('INSERT INTO {} (date, time, tag, power) VALUES ' '(%s, %s, %s, %s)'.format(self.db_scan_table)) for (d, t, tag, power) in <your loop>: self.cursor.execute(sql, (d, t, tag, power))
Alternativement, vous pouvez utiliser la méthode execute_many() de l'objet curseur pour insérer plusieurs lignes à la fois :
data = [(d, t, tag, power) for <your loop>] self.cursor.executemany(sql, data)
Cela améliorera considérablement les performances, en particulier pour les grands ensembles de données.
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!