Mysql
 sql >> Base de données >  >> RDS >> Mysql

ProgrammingError :tous les arguments ne sont pas convertis lors du formatage de la chaîne

Selon la spécification de base de données Python dans PEP 249 , le format utilisé dans une requête pour montrer où insérer les paramètres dépend du paramstyle membre du module base de données :

  • si c'est qmark , utilisez ? (point d'interrogation)
  • si c'est numeric , utilisez :1 , :2 etc. (numérique, style positionnel)
  • s'il est named , utilisez :name (style nommé)
  • si c'est le format , utilisez %s (Codes de format ANSI C printf)
  • si c'est pyformat , utilisez %(name)s (Codes de format étendu Python)

AFAIR, MySQLdb utilise le format , vous devez donc remplacer votre ? avec %s .(Si MySQLdb utilisait correctement les instructions préparées, ce serait qmark et ? était la bonne voie à suivre.)