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

Python/MySQL-forespørgselsfejl:"Ukendt kolonne".

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

Bogstaveligt talt bliver til

INSERT INTO fruit (name, variety) VALUES (watermelon, melon)

I stedet for strenge, watermelon og melon er kolonner. For at løse dette skal du sætte anførselstegn omkring din %s .

"INSERT INTO fruit (name, variety) VALUES ('%s', '%s')" % (new_fruit, new_fruit_type)

Du bør dog køre det som:

cursor.execute("INSERT INTO fruit (name, variety) VALUES (%s, %s)", (new_fruit, new_fruit_type));

Bemærk, at vi har fjernet citaterne omkring %s og sender variablerne som det andet argument til execute metode. Execute forhindrer sql-injektion fra variablerne samt ombryder strenge i anførselstegn.

For mere information, se http://mysql-python.sourceforge.net/ MySQLdb.html#some-examples



  1. Erklæring og initialisering af variabler på samme linje i VBA

  2. SQLiteException ved hjælp af WHERE +KEY_Date+='+date+'

  3. Mysql brugeroprettelse script

  4. Bash Script loop gennem MySQL