Mysql
 sql >> Database >  >> RDS >> Mysql

ProgrammingError:non tutti gli argomenti sono stati convertiti durante la formattazione delle stringhe

Secondo la specifica del database Python in PEP 249 , il formato utilizzato in una query per mostrare dove inserire i parametri dipende da paramstyle membro del modulo database:

  • se è qmark , usa ? (punto interrogativo)
  • se è numeric , usa :1 , :2 ecc. (stile numerico, posizionale)
  • se è named , usa :name (stile con nome)
  • se è format , usa %s (codici formato ANSI C printf)
  • se è pyformat , usa %(name)s (Codici formato esteso Python)

AFAIR, MySQLdb usa il format , quindi dovresti sostituire il tuo ? con %s .(Se MySQLdb utilizzasse correttamente le istruzioni preparate, sarebbe qmark e ? era la strada giusta.)