Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur de requête Python/MySQL :"Colonne inconnue"

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

devient littéralement

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

Au lieu de chaînes, watermelon et melon sont des colonnes. Pour résoudre ce problème, placez des guillemets autour de votre %s .

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

Cependant, vous devez l'exécuter en tant que :

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

Remarquez que nous avons supprimé les guillemets autour du %s et transmettent les variables comme deuxième argument au execute méthode. Execute empêche l'injection SQL à partir des variables et place les chaînes entre guillemets.

Pour plus d'informations, consultez http://mysql-python.sourceforge.net/ MySQLdb.html#quelques-exemples