09/10/2018, 18:03
Làm sao insert kí tự '' vào CSDL bằng ASP???
Mình insert kí tự ' vào CSDL bằng ASP thì báo lỗi, vậy cách nào để insert nó, mình thấy Snitz Forum insert được mà???
Bài liên quan
str = Replace(str,"'", "''")
Ví dụ: khi bạn muốn cấm Insert các thẻ HTML chẳng hạn, hay là bạn không cho Insert các dòng script, ...
Xem kỹ câu lệnh sql bạn sẽ biết thôi.
Nếu lệnh truy vấn là:
Dim fld_name, fld_email
fld_name = Request.From("name")
fld_email = Request.From("email")
query = "INSERT INTO user(name,email) VALUES (' " & fld_name & " ', ' " & fld_email & " '); "
Lúc người dùng nhập:
name: qua'ch hy? La^m
email: quachhylam@yahoo.com
Vậy thì câu lệnh khi đó sẽ là:
query = " INSERT INTO user(name,email) VALUES (' qua'ch hy? La^m ', ' quachhylam@yahoo.com ');"
-> Trình duyệt sẽ báo lỗi vì IIS cho rằng kí tự ' ngay tại qua'ch hy? La^m là dấu chú thích
Giải pháp là dùng hàm Replace để chuyển kí tự ' thành kí tự nào khác, và khi ta lấy dữ liệu từ DATABASE ta lại dùng hàm Replace để trả về chính tứ tự '.
Ở đây không phải là chèn ' mà chèn kí tự trung gian.
Mình hỏi là có giải pháp nào chèn chính xác kí tự ' không???
Chỉ cần chú ý 1 tý sẽ biết thôi.