2010-08-04 73 views
0

我有一个奇怪的 - 我将一些数据从一个CMS移植到另一个。两者都在LAMP上运行。删除MYSQL中的一串转义引号

在旧CMS中,数据存储在数据库中,斜线显示。

例子:

Hi. Thanks for looking. It\'s \"awesome\". 

当老CMS输出正确显示:

Hi. Thanks for looking. It's "awesome". 

但在新的CMS,他们相同的文本被简单地存储为以下和他们处理出来时的报价:

Hi. Thanks for looking. It's "awesome". 

我试图取代()直接在mysql的,但只是逃避报价,它只是删除所有的报价。然后我尝试着将所有的数据都用php拉出来,然后放回去,没有做任何事情,希望斜杠能够逃脱数据,我会很好,但不是这样的运气 - 这似乎适用于其中一个行但查询被破坏。

任何想法?它已经有一段时间,因为我有添加/的stripslashes发挥各地等

感谢

+0

它的stripslashes。 – Artefacto 2010-08-04 15:55:08

回答

1

你必须使它

$data = stripslashes($data); 
$data = mysql_real_escape_string($data); 
0

如果您使用PHP来导入你的数据,你会要执行 -

str_replace("'", "''")

每个条目。

这是怎么在PHP MYSQL escapes strings

+0

您链接到的文本说不同 – 2010-08-04 16:04:23

+0

这里有几种方法可以在字符串中包含引号字符: *用“'”引用的字符串内的“'”可以写为“''”。 *用“”引用的字符串中的“”“可以写成”“”“。 我误解了什么吗? 我已经使用Java加载了几个数据集,并在重建加载文件时执行操作(replaceAll(“'”,“''”)),并且它负责处理我的逃避困境。 – 2010-08-04 16:19:46

+0

mysql转义字符是反斜杠,而不是引用 – 2010-08-04 20:53:35