插入时如何解决单引号问题?

时间:2011-06-08 09:48:12

标签: php

从PHP post方法获取值并希望存储在数据库中时,避免\'的最佳方法是什么?我简单地使用了echo $_POST['txtname'];

如果输入名称为Uncl\'es Jules

,则会生成输出Uncl'es Jules

任何人都能提出更好的建议吗?

4 个答案:

答案 0 :(得分:0)

它正在逃避存储在数据库中的不安全字符。您实际上希望您的SQL库执行此操作。如果你不这样做,你可以使用SQL注入,这很糟糕。 :)

但似乎你启用了魔法引号。不要使用它,并在将数据插入数据库之前使用mysql_real_escape_string()来转义数据。

显示数据时,您需要做的是revert all escaped characters back

答案 1 :(得分:0)

答案 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这就是为什么它会自动转义数据。

  1. 您应该停用magic_quotesHere就是你的方式
  2. 插入时使用mysql_real_escape_string()转义数据
  3. 如果没有因任何原因禁用magic_quotes,您可以使用stripslashes删除额外的\

    echo stripslashes($data);