PHP中的两次转义引号

PHP中的两次转义引号,php,mysql,mysql-real-escape-string,Php,Mysql,Mysql Real Escape String,我有一个复杂的表单,首先我必须获取一些$\u GET参数,显然我必须对它们执行mysql\u real\u escape\u string(),因为我在数据库中查找它们 我的问题是在最初的数据库查找之后。当用户提交表单时,我会以$\u POST请求的形式发送它们,并且显然必须再次执行此mysql\u real\u escape\u string调用,以防有人试图用假表单提交攻击我的站点 然后我遇到的问题是,参数被转义了两次,我的查询开始看起来像这样奇怪: select field1 , fiel

我有一个复杂的表单,首先我必须获取一些
$\u GET
参数,显然我必须对它们执行
mysql\u real\u escape\u string()
,因为我在数据库中查找它们

我的问题是在最初的数据库查找之后。当用户提交表单时,我会以
$\u POST
请求的形式发送它们,并且显然必须再次执行此
mysql\u real\u escape\u string
调用,以防有人试图用假表单提交攻击我的站点

然后我遇到的问题是,参数被转义了两次,我的查询开始看起来像这样奇怪:

select field1 , field2 , from my_table where some_id = \'.$lookup_id.\' ...
因此,系统似乎在添加\'并把我搞得一团糟:) 另外,在我的其他形式中,我没有见过这样的行为。你知道是什么导致了这一切吗


一件奇怪的事情是,我试图向帖子发送未被替换的参数,同样的问题也发生了。这是一个线索,但对我来说还不够(

stripslashes函数可能有用-在转义之前运行它?

stripslashes函数可能有用-在转义之前运行它?

请在php中查看此设置:


请在php中查看此设置:


您应该使用准备好的语句,这些语句被认为更安全,因为用户提交的字符串永远不会被解析为SQL语句,从而降低SQL注入风险。
由于未解析用户字符串,因此不需要转义特殊字符。

您应该使用准备好的语句,因为用户提交的字符串从未解析为SQL语句,因此被认为更安全,从而降低SQL注入风险。 由于未解析用户字符串,因此不需要转义特殊字符