如何在MySQL中插入反斜杠,反斜杠被吃掉消失,反斜杠转义

大超

我今天写了一篇文章,其中带有文件的路径C:\file,结果Insert数据库的时候发现反斜杠没有了,变成了C:file了,刚开始以为是Ajax数据提交的时候被js过滤了,后来发现不是。

经过反复试验,最终确定是MySQL给过滤掉了,我用了两个反斜杠就正常了,比如:C:\\file,但总不能每次编辑都这样写吧。那么如何在MySQL中插入反斜杠?反斜杠被吃掉消失怎么办?请往下看。

其实MySQL在处理数据的时候会检测转义字符(也就是反斜杠“\”),如果这个符号后面有需要转义的字符就会自动转义,如果没有就会自动去掉这个反斜杠,因为它没有用处了。

而如果两个反斜杠在一起就会被转义成一个反斜杠,明白了原理,解决起来就简单了,PHP有两个函数:addslashes(),mysql_escape_string(),他俩都可以实现这个效果,mysql_escape_string()在新版的PHP中已经弃用了,所以推荐用addslashes()。

addslashes($content);

是不是已经解决了呢?如果还没有解决,请在公众号“大超小志”联系我。

有问题可在下方评论留言,或关注“大超小志”微信公众号留言。

标签: MySQL

留言评论

如需留言或评论,请在微信中打开此页面。