Bonjour, je débute sur python et je n'arrive pas a me sortir d'un pétrin apres plus de 2H...
Je cherche a creer une fonction qui détruirais la table en question, si je laisse le nom statique de la table sa marche parfaitement, si je la passe en variable c'est le drame !

Le code suivant fonctionne a merveille, c'est le suivant qui me pose des problemes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
import MySQLdb
def delltable ():
    mysql = MySQLdb.connect('localhost', 'scan-serv', 'test', 'servers')
    cursor = mysql.cursor ()
    cursor.execute ("TRUNCATE TABLE `test`")
delltable() est bien réalisé je n'ai aucune probleme maintenant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
import MySQLdb
def delltable (table):
    mysql = MySQLdb.connect('localhost', 'scan-serv', 'test', 'servers')
    cursor = mysql.cursor ()
    cursor.execute ("TRUNCATE TABLE %s", (table))
delltable("test") ne fonctionne absolument pas !

Traceback (most recent call last):
File "<pyshell#91>", line 1, in <module>
delltable ("test")
File "F:\python\testmysql.py", line 5, in delltable
cursor.execute ("TRUNCATE TABLE %s", (table))
File "F:\python\lib\site-packages\MySQLdb\cursors.py", line 173, in execute
self.errorhandler(self, exc, value)
File "F:\python\lib\site-packages\MySQLdb\connections.py", line 35, in defaulterrorhandler
raise errorclass(errorvalue)
ProgrammingError: (1064, "Erreur de syntaxe pr\xe8s de ''test'' \xe0 la ligne 1")
Merci de m'aider