Ký tự thoát là ', vì vậy bạn cần phải thay thế báo giá bằng hai dấu ngoặc kép.
Ví dụ,
SELECT * FROM PEOPLE WHERE SURNAME='O'Keefe'
trở thành
SELECT * FROM PEOPLE WHERE SURNAME='O''Keefe'
Điều đó nói rằng, nó có thể không chính xác để làm điều này cho mình. Ngôn ngữ của bạn có thể có một chức năng để thoát khỏi chuỗi để sử dụng trong SQL, nhưng một lựa chọn tốt hơn là sử dụng các tham số. Thông thường điều này hoạt động như sau.
lệnh SQL của bạn sẽ là:
SELECT * FROM PEOPLE WHERE SURNAME=?
Sau đó, khi bạn thực hiện nó, bạn vượt qua trong "O'Keefe" như một tham số.
Vì SQL được phân tích cú pháp trước khi giá trị tham số được đặt, không có cách nào cho giá trị tham số thay đổi cấu trúc của SQL (và thậm chí nhanh hơn một chút nếu bạn muốn chạy cùng một câu lệnh nhiều lần với các tham số khác nhau).
Tôi cũng nên chỉ ra rằng, trong khi ví dụ của bạn chỉ gây ra lỗi, bạn tự mở cho mình nhiều vấn đề khác bằng cách không thoát chuỗi một cách thích hợp. Xem http://en.wikipedia.org/wiki/SQL_injection để có điểm xuất phát tốt hoặc cổ điển sau đây xkcd comic.
Nguồn
2008-08-27 08:17:56
Xem [** Kỹ thuật ký hiệu chuỗi trích dẫn cho dấu nháy đơn **] (http://lalitkumarb.com/2014/12/31/quoting-string-literal-technique-to-avoid-erros -due-to-single-quotes-marks-in-the-string /) –