扫码关注官方订阅号
Mysql中varchar和text类型的字段中想插入多行文本该如何操作? 我尝试插入\n字符到里面,通过JDBC从数据库中读取出来并封装到json中,发现取到的是\\n,即该字符被当做普通字符进行了保留和转义。 那么问题来了,怎样才能向Mysql中插入多行文本呢?
varchar
text
\n
\\n
认证高级PHP讲师
话说MySQL中insert\n是没什么问题的,问题应该出在结构化为json的过程中,或者题主可以对结果进行一次replace()。
replace()
参考:http://dev.mysql.com/doc/refman/5.7/en/string-literals.html
@Kavlez 说的不错,如果我数据库中存入的是带有mysql自带的换行符的话,那么是没有问题的;但是如果我数据库中写入的字符串是"a\nb\nc",那么此时我取得的字符串却是"a\nb\nc",即将"\n"当做是字符串来进行了处理而不是转移字符。 最后我采用的解决方案是rs.getString("XX").replace("\\n", "\n")
rs.getString("XX").replace("\\n", "\n")
用\r\n会更好些,在navicat里面也是换行显示的,如下:UPDATE xdops.servers SET network='em1 192.168.60.180\r\nem2 180.163.145.180' WHERE (server_id='34');
xdops
servers
network
server_id
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
话说MySQL中insert

\n是没什么问题的,问题应该出在结构化为json的过程中,或者题主可以对结果进行一次replace()。参考:http://dev.mysql.com/doc/refman/5.7/en/string-literals.html
@Kavlez 说的不错,如果我数据库中存入的是带有mysql自带的换行符的话,那么是没有问题的;但是如果我数据库中写入的字符串是"a\nb\nc",那么此时我取得的字符串却是"a\nb\nc",即将"\n"当做是字符串来进行了处理而不是转移字符。
最后我采用的解决方案是
rs.getString("XX").replace("\\n", "\n")用\r\n会更好些,在navicat里面也是换行显示的,如下:
UPDATE
xdops.serversSETnetwork='em1 192.168.60.180\r\nem2 180.163.145.180' WHERE (server_id='34');