我在所有的查询上使用mysql_real_escape_string
。没有使用addslashes
,但是每次使用'
时,它都会在输出上进行转义-就像mysql_real_escape_string
转义然后再通过某种PHP设置进行转义一样。
有没有人知道任何设置会导致这种情况,使用mysql_real_escape_string
然后stripslashes
是一种痛苦?
首先确保php.ini中的magic_quotes_gpc=Off
。这将导致您处理两次斜杠,这将导致插入到数据库中的数据出现问题。
你也不应该在输出数据上使用mysql_real_escape_string或addslashes。只有在查询中使用的变量,因为它可以防止SQL注入。
阻止sql注入的更好方法是在PDO, ADODB或MySQLi中使用参数化查询。