mariadb/mysql插入反斜杠"\"被过滤丢失的解决方法
温馨提示:
最后更新时间2018-08-24 14:51:27,若内容或图片失效,请留言反馈!
问题描述:
mysql或者mariadb中带有反斜杠的内容入库后,发现反斜杠无故失踪了(俗话说被吃掉了)
例:插入insert into tb('url') values('absc\eeee'); 结果数据库里的内容是:
absceeee(反斜杠没了呢)
absceeee(反斜杠没了呢)
解决方案:
用addslashes(),mysql_escape_string()等函数进行处理,也就是在插入数据库前,把内容处理一下
如:$cc = addslashes('absc\eeee'); insert into tb('url') values($cc);
问题:保存文件路径时,"\"插入到mysql中丢失
方法:使用转义字符"\\\\"替换"\",如:
String sb="a\b";sb=sb.replaceAll("\\\\", "\\\\\\\\");
mysql 在插入数据库的时候,会自动去除转义字符也就是反斜杠"\",addslashes(),mysql_escape_string()使用这些函数可以在反斜杠前再加个反斜杠也就是成了 absc\\eeee,在入库的时候第一个反斜杠被认为是转义字符,第二个反斜杠被认为是常规内容,所以去除了第一个反斜杠,保留了第二个,看到的结果是反斜杠插进去了。
文章版权声明:除非注明,否则均为林羽凡原创文章,转载或复制请以超链接形式并注明出处。