为了在执行查询(包括 INSERT 查询)之前防止 SQL 注入攻击,我正在使用mysql_real_escape_string
.
问题是如果要输入的数据中有特殊字符,MYSQL 似乎在插入时将斜杠插入到数据库中。
然后,当我在网页上显示该字段时,会出现斜线。
理想情况下,我不想在 dbase 表中的特殊字符之前使用斜杠,因为这将需要大量的持续维护来在显示数据等时删除斜杠。
无论如何要存储在数据库中而不包括反斜杠?
举个例子:
$field = "bob's data";
...establish database connection
$field = mysql_real_escape_string($field);
$sql="INSERT INTO table (field) VALUES ('$field')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
将“鲍勃的数据”放入数据库中。
有没有办法以不同的方式处理这个问题,以免在数据库中出现斜线?
注意:我知道执行 qureris 的首选方法是使用参数化查询或 pdo,但由于各种原因,在这种情况下不能这样做,因为它是一个巨大的遗留网站。
提前感谢您的任何建议。