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

Erro de consulta Python/MySQL:`Coluna desconhecida`

"INSERT INTO fruit (name, variety) VALUES (%s, %s)" % ("watermelon", "melon")

Literalmente se torna
INSERT INTO fruit (name, variety) VALUES (watermelon, melon)

Em vez de strings, watermelon e melon são colunas. Para corrigir isso, coloque aspas em seu %s .
"INSERT INTO fruit (name, variety) VALUES ('%s', '%s')" % (new_fruit, new_fruit_type)

No entanto, você deve executá-lo como:
cursor.execute("INSERT INTO fruit (name, variety) VALUES (%s, %s)", (new_fruit, new_fruit_type));

Observe que removemos as citações em torno do %s e estão passando as variáveis ​​como o segundo argumento para o execute método. Execute impede a injeção de sql das variáveis, bem como envolve strings entre aspas.

Para obter mais informações, consulte http://mysql-python.sourceforge.net/ MySQLdb.html#some-examples