Để tránh tiêm, hãy sử dụng execute
với %s
thay cho mỗi biến, sau đó chuyển giá trị qua danh sách hoặc bộ giá trị làm tham số thứ hai của execute
. Đây là ví dụ từ tài liệu
:
c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
WHERE price < %s""", (max_price,))
Lưu ý rằng điều này đang sử dụng dấu phẩy , không phải % (sẽ là một chuỗi thay thế trực tiếp, không phải là thoát). Không làm điều này :
c.execute("""SELECT spam, eggs, sausage FROM breakfast
WHERE price < %s""" % (max_price,))
Ngoài ra, bạn không được sử dụng các dấu ngoặc kép xung quanh người giữ vị trí ('%s'
) nếu tham số là một chuỗi do trình điều khiển cung cấp.