MYSQL反斜杠问题

起因

数据库有个字段数据自带了反斜杠,类似这种:体育\教育。 正常展示什么的都没问题,我们系统有个功能:克隆,就是把这篇稿件所有属性都复制一份到其他栏目。 在执行克隆的时候发现反斜杠没有了,我调试大半天发现代码什么的都没有过滤这个功能。 最后直接把输出的SQL代码贴到navicat上执行,发现反斜杠真的不见了

解决

原来mysql会自动顾虑反斜杠,如果有两个会自动变成一个,如果只有一个就消失了 解决办法就只能在字段上判断反斜杠,把一个变成两个,这个正则替换也是很神奇

$str = '体育\教育';
echo preg_replace('/\\\/', '\\\\\\', $str);

// 体育\\教育

这样mysql执行后会保留一个