Bonjour !
Je suis actuellement nouveau et j'apprend sur le tas le python 3 en m'amusant.
Mon projet actuel est d'utiliser mon RaspberryPi4 en serveur Web, et d'utiliser une interface web (codé a la main(Php/Html)) afin d’afficher mon planning de travail sur une page web.
Maintenant, je souhaitais créer un programme python capable de récupérer des infos via un fichier *.CSV qui contient mon planning pour l’incrémenter dans ma base de donnée.
La arrive mon problème, pour accéder à ma database j'utilise mysql connector ça fonctionne bien et c'est simple d'utilisation.
Sauf que je n'arrive pas a rendre dynamique le nom de la table concernée pour mes requêtes SQL.
Mais voila ou est mon problème c'est que je ne peux pas utiliser de variable pour le nom de ma table, car ça renvois des ' ' au début et à la fin du nom de ma table. Exemple: 'decembre'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 if verify == 1 : # on récupère le mois concerné, pour ensuite ajouter le planning dans la DB mois = row[0] year = datetime.datetime.now() config = { 'user': 'root', 'password': 'mdp', 'host': '127.0.0.1', 'database': str(year.year), 'raise_on_warnings': True } cnx = mysql.connector.connect(**config) cursor = cnx.cursor() cursor.execute("SELECT COUNT(ID) AS nb2 FROM %s WHERE login=%s", (str(mois), row[1],)) results = cursor.fetchall() for nb2 in results: print(results[0])
Et python répond:
J'ai chercher de la doc pour mysql.connector, ils expliquent pleins de choses intéressante mais pas ça. Je dois me focaliser sur quelque chose qui doit être faisable d'une manière différente je pense.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Traceback (most recent call last): File "py_csv.py", line 88, in <module> cursor.execute("SELECT COUNT(ID) AS nb2 FROM %s WHERE login=%s", (str(mois), row[1],)) File "/usr/lib/python3/dist-packages/mysql/connector/cursor.py", line 569, in execute self._handle_result(self._connection.cmd_query(stmt)) File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 553, in cmd_query result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query)) File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 442, in _handle_result raise errors.get_exception(packet) mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''novembre' WHERE login='BOUSIM'' at line 1
Si quelqu'un a des connaissance a me faire partager je serais extrêmement reconnaissant !
A l'avenir, je souhaiterais ensuite faire un programme capable de récupérer mon planning dans ma base de donnée, et de créer un fichier *.ics pour le lier a mon google agenda (testé et ça marche).
Bonne journée à tous et à toutes ! Et merci d'avance pour votre aide.
Partager