【发布时间】:2012-04-24 04:41:58
【问题描述】:
使用 PHP,在 MSQUL 数据库中存储特殊字符(如下所示)以避免注入的最佳方法是什么。
« " ' é à ù
这就是我现在的做法:
$book_text=$_POST['book_text'];
$book_text=htmlentities($book_text, "ENT_QUOTES");
$query=//DB query to insert the text
然后:
$query=//DB query to select the text
$fetch=//The fetch of $book_text
$book_text=html_entity_decode($book_text);
这样,我所有的文本都被格式化为 HTML 实体。但是我认为这会占用大量的数据库空间。那么,有没有更好的办法呢?
【问题讨论】:
-
"ENT_QUOTES"必须是ENT_QUOTES(不带引号),因为它是 PHP 预定义的常量。而且我认为您可以将其原始放在数据库中,当您想回显它时,您可以使用htmlentities
标签: php mysql sql-injection html-entities html-encode