Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

ProgrammingError:nem todos os argumentos são convertidos durante a formatação da string


De acordo com a especificação do banco de dados Python em PEP 249 , o formato usado em uma consulta para mostrar onde inserir os parâmetros depende do paramstyle membro do módulo de banco de dados:
  • se for qmark , use ? (ponto de interrogação)
  • se for numeric , use :1 , :2 etc. (numérico, estilo posicional)
  • se for named , use :name (estilo nomeado)
  • se for format , use %s (códigos de formato ANSI C printf)
  • se for pyformat , use %(name)s (Códigos de formato estendido do Python)

AFAIR, MySQLdb usa format , então você deve substituir seu ? com %s .(Se o MySQLdb usasse corretamente as instruções preparadas, seria qmark e ? era o caminho certo a seguir.)