"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
の周りの引用符を取り除いたことに注意してください 変数を2番目の引数としてexecute
に渡します 方法。 Execute
変数からのSQLインジェクションを防ぎ、文字列を引用符で囲みます。
詳細については、http://mysql-python.sourceforge.net/を参照してください。 MySQLdb.html#some-examples