"INSERT INTO fruit (name, variety) VALUES (%s, %s)" % ("watermelon", "melon")
Secara harfiah menjadi
INSERT INTO fruit (name, variety) VALUES (watermelon, melon)
Alih-alih string, watermelon
dan melon
adalah kolom. Untuk memperbaikinya, beri tanda kutip di sekitar %s
. Anda .
"INSERT INTO fruit (name, variety) VALUES ('%s', '%s')" % (new_fruit, new_fruit_type)
Namun, Anda harus menjalankannya sebagai:
cursor.execute("INSERT INTO fruit (name, variety) VALUES (%s, %s)", (new_fruit, new_fruit_type));
Perhatikan bahwa kami menghilangkan kutipan di sekitar %s
dan meneruskan variabel sebagai argumen kedua ke execute
metode. Execute
mencegah injeksi sql dari variabel serta membungkus string dalam tanda kutip.
Untuk informasi lebih lanjut, lihat http://mysql-python.sourceforge.net/ MySQLdb.html#beberapa-contoh