Bạn không cần phải thoát khỏi ký hiệu đô la. MySQL không xử lý ký tự đó một cách đặc biệt và PHP chỉ nhận dạng nó trong mã nguồn chứ không phải trong các giá trị chuỗi (trừ khi bạn gọi eval
trên chuỗi, nhưng đó là toàn bộ những con sâu khác).
Bạn chỉ cần thoát %
và _
nếu bạn sử dụng đầu vào của người dùng làm đối số cho LIKE
và bạn không muốn người dùng có thể sử dụng các ký tự đại diện. Điều này có thể xuất hiện nếu bạn đang xử lý một biểu mẫu tìm kiếm. Bạn không cần sử dụng nó khi lưu trữ vào cơ sở dữ liệu.
Bạn không cần sử dụng htmlspecialchars
khi truy cập cơ sở dữ liệu. Điều đó chỉ nên được sử dụng khi bạn đang hiển thị dữ liệu cho người dùng trong trang HTML, để ngăn chặn việc đưa XSS vào.