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.