sql >> Database >  >> RDS >> Mysql

Python/MySQL-queryfout:`Onbekende kolom`

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

Wordt letterlijk

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

In plaats van strings, watermelon en melon zijn kolommen. Om dit op te lossen, plaatst u aanhalingstekens rond uw %s .

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

U moet het echter uitvoeren als:

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

Merk op dat we de aanhalingstekens rond de %s . hebben weggehaald en geven de variabelen als het tweede argument door aan de execute methode. Execute voorkomt sql-injectie van de variabelen en plaatst tekenreeksen tussen aanhalingstekens.

Voor meer informatie, zie http://mysql-python.sourceforge.net/ MySQLdb.html#some-examples



  1. SQL Server AlwaysOn-functies gebruiken

  2. MySQL UPDATE-syntaxis met meerdere tabellen met behulp van de WHERE-clausule

  3. FindByUUID() met behulp van Spring Data's JPA Repository

  4. Prioriteit wijzigen voor gelijktijdig programma