Php Mysql似乎删除了字符串中的斜杠

Php Mysql似乎删除了字符串中的斜杠,php,mysql,Php,Mysql,我正从PHP运行这个精确的查询: UPDATE commentedText SET title='§2.', content='<div class=\"pageParagraph\"><p>Test</p>\n</div>', last_changed='1430422172', image_banner_url='', active='', comments='[{"from":"0","to":"0","id":"1","CommentedT

我正从PHP运行这个精确的查询:

UPDATE commentedText SET title='§2.', content='<div class=\"pageParagraph\"><p>Test</p>\n</div>', last_changed='1430422172', image_banner_url='', active='', comments='[{"from":"0","to":"0","id":"1","CommentedText":"","comment":"New test with \"test\" :d"}]' WHERE id='5541d52beb2ea' AND appId='MyAppID' LIMIT 1
updatecommentedtext SET title='§2',content='Test

\n',last_changed='1430422172',image_banner_url='',active='',comments='[{“from”:“0”,“to”:“0”,“id”:“1”,“commentedText”:“comment:”“带有\“Test\”:d“}]”的新测试,其中id='5541d52beb2ea和appId='MyAppID'限制为1
但是,当我阅读更新的行(通过PHP或MySQL Workbench)时,斜杠消失了。例如,见

<div class=\"pageParagraph\"[..]

它们甚至在进入MySQL之前就消失了——PHP将反斜杠视为双引号的转义

"\""
创建字符串

要保留反斜杠,请使用

"\\\""
第一个转义第二个,第三个转义引用

Mysql还对字符串使用反斜杠转义。因此,要在查询中使用它,需要再次对其进行转义

"\\\\\""
PHP的字符串将是
\\”


在MySQL中,它将创建一个字符串
\”
在处理查询时使用适当的转义。应用addslashes()之类的东西很容易失败

取决于您的库,mysql\u real\u escape\u string()、mysqli\u real\u escape\u string(),或者最好的


这些转义方法不会修改原始数据,因此您不必担心在渲染时删除转义字符。

斜杠用于转义插入字符。要插入文字斜杠,您需要转义它们\\这就是为什么您使用准备好的语句,或者至少使用
escape\u string
func它们会消失,因为在执行查询或使用准备好的语句时没有正确地转义字符串(推荐)。请参阅或。如果您使用的是
mysql.*
函数,请务必切换到其他函数之一。太好了,我改为使用mysqli\u real\u escape\u字符串,现在它可以用于双引号。但是单引号仍然会给我带来问题:您的SQL语法有错误;请查看与您的mysql服务器版本相对应的手册,以了解其正确性t语法是否要立即使用“single\\\”引号?}]“其中,第1行的id='5541d52beb2ea'和appId='MyApp'LIMIT 1'
"\\\\\""