Php 插入时如何解决单报价问题?

Php 插入时如何解决单报价问题?,php,Php,当我们从PHP post方法获取值并希望存储在数据库中时,避免\'的最佳方法是什么。我只使用了echo$_POST['txtname'] 如果输入name作为unc'es Jules,它将生成输出unc'es Jules 有谁能建议更好的方法吗?它是转义不安全的字符以存储在数据库中。实际上,您希望您的SQL库能够做到这一点。如果不这样做,您将对SQL注入敞开大门,这很糟糕 但似乎你已经启用了魔法引号。在将数据插入数据库之前,请不要使用该选项,并使用来转义数据 您需要做的是在显示数据时。 使用my

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

如果输入name作为unc'es Jules,它将生成输出unc'es Jules


有谁能建议更好的方法吗?

它是转义不安全的字符以存储在数据库中。实际上,您希望您的SQL库能够做到这一点。如果不这样做,您将对SQL注入敞开大门,这很糟糕

但似乎你已经启用了魔法引号。在将数据插入数据库之前,请不要使用该选项,并使用来转义数据

您需要做的是在显示数据时。


使用mysql\u real\u escape\u字符串

尝试使用mysql\u real\u escape\u字符串

insert into tblTable1 set field1 = mysql_real_escape_string($_POST['txtname']);
或者mysqli_real_escape_string,PDO也有匹配的函数。

这听起来像是您启用了,这就是它自动转义数据的原因

你应该禁用魔法引号。这就是你能做到的 插入数据时使用转义数据 如果没有出于任何原因禁用magic_quotes,您可以使用删除这些额外的\


如果您启用了magic_引号,请在旁注上禁用它们,mysql_real_escape_字符串及其变体应始终使用。这将有助于最大限度地减少恶意SQL注入尝试。当检索使用mysql\u real\u escape\u字符串转义的值时,不必去除斜杠,它们应该在未转义的情况下返回。如果更新值,只需记住再次传递mysql\u real\u escape\u字符串。
echo stripslashes($data);