"INSERT INTO fruit (name, variety) VALUES (%s, %s)" % ("watermelon", "melon")
Wird buchstäblich
INSERT INTO fruit (name, variety) VALUES (watermelon, melon)
Anstelle von Schnüren watermelon
und melon
sind Säulen. Um dies zu beheben, setzen Sie Ihr %s
in Anführungszeichen .
"INSERT INTO fruit (name, variety) VALUES ('%s', '%s')" % (new_fruit, new_fruit_type)
Sie sollten es jedoch wie folgt ausführen:
cursor.execute("INSERT INTO fruit (name, variety) VALUES (%s, %s)", (new_fruit, new_fruit_type));
Beachten Sie, dass wir die Anführungszeichen um %s
entfernt haben und übergeben die Variablen als zweites Argument an execute
Methode. Execute
Verhindert die SQL-Injektion aus den Variablen und schließt Zeichenfolgen in Anführungszeichen ein.
Weitere Informationen finden Sie unter http://mysql-python.sourceforge.net/ MySQLdb.html#einige-beispiele