Thứ Hai, 14 tháng 7, 2014

Khắc phục lỗi lệnh insert hay update có ký tự đặc biệt trong php & mysql

Khi bạn thực hiện lệnh insert hay update trong php và mysql sẽ có những ký tự đặc biệt khiến cho câu lệnh không thể thực thi ví dụ: dâu nháy ' trong câu lệnh trong php như sau:
$sql = "insert into amprie_categories (cat_nom_fr, cat_nom_en, cat_repertoire_fr) values('".$cat_nom_fr."','".$cat_nom_en."','".$repertoire_fr."')";
khi bạn print $sql nó sẽ ra câu lệnh dưới:
insert into amprie_categories (cat_nom_fr, cat_nom_en, cat_repertoire_fr) values('RIE c'est quoi?','what is RIE?','presentation')
Với câu lệnh này thì lệnh insert sẽ bị lỗi bởi có dấu nháy ở chữ " c'est ". Vậy cách khắc phục như sau:
Bạn sẽ đặt biến của bạn trong lệnh sau: "MyAddSlashes($ten_bien) như vậy với $sql ở trên sẽ đổi thành:
$sql = "insert into amprie_categories (cat_nom_fr, cat_nom_en, cat_repertoire_fr) values('".MyAddSlashes($cat_nom_fr)."','".MyAddSlashes($cat_nom_en)."','".MyAddSlashes($repertoire_fr)."')";
Khi bạn print $sql nó sẽ ra câu lệnh dưới:
insert into amprie_categories (cat_nom_fr, cat_nom_en, cat_repertoire_fr) values('RIE c\'est quoi?','what is RIE?','presentation')
Với MyAddSlashes thì khi trong nội dung insert có ký tự đặc biệt nó sẽ thêm dấu \ vào đằng trước để nhận biết. Thay vì c'est sẽ là c\'est.
như vậy lệnh insert sẽ không bị lỗi.
Xêm tại: http://langhove.com/khac-phuc-loi-lenh-insert-hay-update-co-ky-tu-dac-biet-trong-php-mysql.html

Không có nhận xét nào:

Đăng nhận xét