想象一个博客或CMS系统(PHP和MySQL)。我想让用户在文本区域中输入一些文本并将其保存到数据库中。数据库中的字段类型为TEXT。
我想保留换行符并稍后打印它们。我知道可以使用PHP的nl2br
函数来实现这一点,但是如何保护该字符串免受SQL注入攻击(假设我不能使用预处理语句)?如果我在其上使用mysql_real_escape_string
,则不再显示换行符。
$text = 'one line
another line';
$text = mysql_real_escape_string($text);
/* save to db, fetch it some time later */
echo nl2br($text); /* output: one line\r\nanotherline */