Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用mysql\u real\u Escape\u字符串时添加的转义字符_Php_Mysql_Mysql Real Escape String - Fatal编程技术网

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酷您应该将此标记为问题的正确答案。