Bạn không nên sử dụng htmlentities khi lưu nó. Bạn nên sử dụng htmlentities khi hiển thị nó. Quy tắc chung là không mã hóa / làm sạch dữ liệu cho đến khi bạn cần. Nếu bạn làm htmlentities trên đó khi bạn lưu thì bạn phải thực hiện html_entity_decode trên văn bản khi người dùng muốn chỉnh sửa đầu vào. Vì vậy, bạn vệ sinh cho những gì bạn cần và không có gì hơn. Khi lưu nó, bạn cần phải làm sạch để chèn SQL, vì vậy bạn mysql_real_escape_string nó. Khi hiển thị, bạn cần phải làm sạch cho XSS, vì vậy bạn htmlentities nó.
Ngoài ra, tôi không chắc liệu bạn có xem nhận xét của Darryl Hein hay không, nhưng bạn thực sự không muốn bật magic_quotes. Chúng là một thứ tồi tệ, tồi tệ và đã không được chấp nhận kể từ PHP 5.3 và sẽ không còn hoàn toàn trong PHP 6.