Các tuyên bố chuẩn bị sẵn không thoát khỏi bất cứ điều gì. Khi bạn chuẩn bị một câu lệnh, truy vấn của bạn sẽ được biên dịch trước, do đó nó chỉ cần trình giữ chỗ (?
) được điền vào. Vì không có cách nào để thay đổi SQL của truy vấn được biên dịch trước, không cần thoát.
Để khắc phục sự cố này, hãy thoát %
và _
thủ công.
Đã thêm:
Một chút lý luận thông thường:Trong trường hợp của bạn, khi người dùng nhập %
vào hộp tìm kiếm, $search
của bạn biến chứa chuỗi %%%
. Làm thế nào để MySQL biết, mà %
nó sẽ trốn thoát, và nó nên để lại một mình?