mysql_real_escape_string将数据与反斜杠一起存储在数据库中

时间:2010-05-14 11:46:09

标签: php mysql mysql-real-escape-string

当我在非转义字符串上使用mysql_real_escape_string时,数据库中的数据存储的是不应该发生的反斜杠。

我有magic_quotes_gpc OFF,不知道为什么会这样。有什么想法吗?

mysql数据库中是否有需要修改的设置。

我没有在代码中的任何位置使用addslashes。 PHP语言。

请帮忙。

3 个答案:

答案 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。

有些问题......

  1. 这是否仅在当前功能中发生。
  2. 检查您的magic_quotes_gpc是开启还是关闭。
  3. 您是否可以发布导致此问题的该功能的一部分。