从PHP post方法获取值并希望存储在数据库中时,避免\'
的最佳方法是什么?我简单地使用了echo $_POST['txtname'];
如果输入名称为Uncl\'es Jules
Uncl'es Jules
任何人都能提出更好的建议吗?
答案 0 :(得分:0)
它正在逃避存储在数据库中的不安全字符。您实际上希望您的SQL库执行此操作。如果你不这样做,你可以使用SQL注入,这很糟糕。 :)
但似乎你启用了魔法引号。不要使用它,并在将数据插入数据库之前使用mysql_real_escape_string()来转义数据。
显示数据时,您需要做的是revert all escaped characters back。
答案 1 :(得分:0)
http://php.net/manual/en/function.mysql-real-escape-string.php
使用mysql_real_escape_string
答案 2 :(得分:0)
尝试使用mysql_real_escape_string()。
insert into tblTable1 set field1 = mysql_real_escape_string($_POST['txtname']);
或者mysqli_real_escape_string(),PDO也有匹配功能。
答案 3 :(得分:0)
这听起来好像启用了magic_quotes这就是为什么它会自动转义数据。
magic_quotes
。 Here就是你的方式如果没有因任何原因禁用magic_quotes,您可以使用stripslashes删除额外的\
。
echo stripslashes($data);