"INSERT INTO fruit (name, variety) VALUES (%s, %s)" % ("watermelon", "melon")
Theo nghĩa đen trở thành
INSERT INTO fruit (name, variety) VALUES (watermelon, melon)
Thay vì chuỗi, watermelon
và melon
là các cột. Để khắc phục điều này, hãy đặt dấu ngoặc kép xung quanh %s
của bạn .
"INSERT INTO fruit (name, variety) VALUES ('%s', '%s')" % (new_fruit, new_fruit_type)
Tuy nhiên, bạn nên chạy nó dưới dạng:
cursor.execute("INSERT INTO fruit (name, variety) VALUES (%s, %s)", (new_fruit, new_fruit_type));
Lưu ý rằng chúng tôi đã loại bỏ các trích dẫn xung quanh %s
và đang chuyển các biến làm đối số thứ hai cho execute
phương pháp. Execute
ngăn chặn việc tiêm sql từ các biến cũng như bao bọc các chuỗi trong dấu ngoặc kép.
Để biết thêm thông tin, hãy xem http://mysql-python.sourceforge.net/ MySQLdb.html # một số-ví dụ