"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