sql >> Databasteknik >  >> RDS >> Mysql

Python/MySQL-frågefel:`Okänd kolumn`

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

Blir bokstavligen

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

Istället för strängar, watermelon och melon är kolumner. För att fixa detta, sätt citattecken runt din %s .

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

Du bör dock köra det som:

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

Lägg märke till att vi tog bort citaten kring %s och skickar variablerna som det andra argumentet till execute metod. Execute förhindrar sql-injektion från variablerna samt lindar strängar inom citattecken.

För mer information, se http://mysql-python.sourceforge.net/ MySQLdb.html#some-examples



  1. Hur får man nästa/föregående rekord i MySQL?

  2. i mysql, på delete cascade fungerar inte

  3. Fel vid installation av psycopg2==2.6.2

  4. Hitta alla föräldrar i mysql-tabellen med en enda fråga (Rekursiv fråga)