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

我关闭了 magic_quotes_gpc ,不知道为什么会发生这种情况。任何想法 ?

mysql数据库有什么设置需要修改吗?

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

请帮忙。

有帮助吗?

解决方案

有magic_quotes的几个变种所有这些都是非常侵入性的并且不能被重写。我认为它不太可能的,额外的转义由DBMS完成。

你检查一下数据的样子的之前应用mysql_real_escape_string() - 我敢打赌,它已经逃脱莫名其妙

下进行。

其他提示

答案很简单。 有些情况下,需要修改mysql数据库没有设置。 它是你的代码/设置。

不是你的的上它需要magic_quotes_gpc双重检查,或者一些你的代码确实另一削除。

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,您的数据将在没有任何 blackSlashes 的情况下存储......应用后你会得到黑斜杠......我个人觉得仔细检查你的代码是否在某个地方应用了addslashes。

一些问题...

  1. 这种情况只发生在当前函数中吗?
  2. 检查你的 magic_quotes_gpc 是否打开或关闭。
  3. 您可以发布导致此问题的该功能的一部分吗?
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top