当我在非转义字符串上使用mysql_real_escape_string时,数据库中的数据存储的是不应该发生的反斜杠。
我有magic_quotes_gpc OFF,不知道为什么会这样。有什么想法吗?
mysql数据库中是否有需要修改的设置。
我没有在代码中的任何位置使用addslashes。 PHP语言。
请帮忙。
答案 0 :(得分:2)
magic_quotes有几种变体,所有变种都非常具有侵略性,无法被覆盖。我认为DBMS不太可能进行额外的转义。
你有没有检查过什么数据之前应用mysql_real_escape_string() - 我敢打赌它已经以某种方式逃脱了。
下进行。
答案 1 :(得分:0)
答案很简单。 mysql数据库中没有需要修改的设置。 这是你的代码/设置。
您有 magic_quotes_gpc
,并且需要进行双重检查,或者您的某些代码会进行另一次削减。
答案 2 :(得分:0)
stripslashes()是PHP的时候 指令magic_quotes_gpc已启用 (它默认开启),而你却不是 将此数据插入某个地方(例如 作为数据库)需要转义。 例如,如果你只是 直接从HTML输出数据 形式。
<?php
$str = "Is your name O\'reilly?";
// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>
让我们知道当你使用stripslashes时,你的输入会变成什么。它是否符合要求的格式。这是为了检查输入是否出现问题。
既然你已经告诉我们没有应用mysql_real_escape_string,你的数据就会被存储而没有任何blackSlash ...并且在应用之后你会得到blackslash ...我个人觉得仔细检查你的代码是否在某些地方应用了addslashes。
有些问题......