Php 使用mysql\u real\u Escape\u字符串时添加的转义字符
我在所有查询中都使用了Php 使用mysql\u real\u Escape\u字符串时添加的转义字符,php,mysql,mysql-real-escape-string,Php,Mysql,Mysql Real Escape String,我在所有查询中都使用了mysql\u real\u escape\u stringaddslashes没有被使用,但是每次使用“时,它都会在输出上转义,就像是被mysql\u real\u escape\u string转义,然后又被某种PHP设置转义一样 如果有人知道任何可能导致这种情况的设置,那么在php.ini中使用mysql\u real\u escape\u string然后使用stripslashes?首先确保magic\u quotes\u gpc=Off。这将导致添加两次斜杠,这
mysql\u real\u escape\u string
addslashes
没有被使用,但是每次使用“
时,它都会在输出上转义,就像是被mysql\u real\u escape\u string
转义,然后又被某种PHP设置转义一样
如果有人知道任何可能导致这种情况的设置,那么在php.ini中使用
mysql\u real\u escape\u string
然后使用stripslashes
?首先确保magic\u quotes\u gpc=Off
。这将导致添加两次斜杠,这将导致插入数据库的数据出现问题
此外,您不应该在输出数据上使用mysql\u real\u escape\u字符串或addslashes。仅适用于查询中使用的变量,因为它阻止SQL注入
停止sql注入的更好方法是将参数化quire与PDO、ADODB或MySQLi一起使用 您是否启用了魔法引号?什么版本的PHP?我建议您应该为mysql连接使用更好的库,比如PDO/mysqli,因为它们支持预先准备好的语句,这样可以消除处理转义数据时的所有痛苦。看这个:(特别是例子)你检查过魔术引号的状态了吗?谢谢你-我喜欢这个网站,所以答案很快!我确实看起来像是开启了魔法引号。您建议使用mysql\u real\u escape\u string()并关闭魔引号,还是不使用mysql\u real\u escape\u string()并保持打开状态?请关闭魔引号。它们已被弃用,只会给您带来问题。我不会在仅输出的输入上使用它。Magic quotes处于启用状态,因此它通过mysql\u real\u escape\u字符串进行转义,然后再次通过Magic quotes进行转义,因此输出包含斜杠。@user887515酷您应该将此标记为问题的正确答案。