"INSERT INTO fruit (name, variety) VALUES (%s, %s)" % ("watermelon", "melon")
Буквално става
INSERT INTO fruit (name, variety) VALUES (watermelon, melon)
Вместо струни, watermelon
и melon
са колони. За да коригирате това, поставете кавички около вашия %s
.
"INSERT INTO fruit (name, variety) VALUES ('%s', '%s')" % (new_fruit, new_fruit_type)
Въпреки това, трябва да го стартирате като:
cursor.execute("INSERT INTO fruit (name, variety) VALUES (%s, %s)", (new_fruit, new_fruit_type));
Забележете, че премахнахме цитатите около %s
и предават променливите като втори аргумент на execute
метод. Execute
предотвратява sql инжектирането от променливите, както и обвива низовете в кавички.
За повече информация вижте http://mysql-python.sourceforge.net/ MySQLdb.html#some-examples