"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 https://mysql-python.sourceforge.net/ MySQLdb.html # một số-ví dụ