单引号 ' 保存到数据库中变成了'

回贴
回帖数 5
阅读数 448
发表时间 2024-06-25 15:47:50
🍉
张济骞 楼主

新建了一个模块, 其中一个字段人名在数据库表中使用varchar存储,外国人名有单引号',使用$this->dao->insert()以后,在数据库中被存储为' 数据库编码为utf8mb4

通过网络请求可以查看到页面传入的form data中的数据仍然是正常的单引号'

怎么解决?

也尝试了在取出字符串后使用html_entity_decode进行转义,但并未成功。


更新:最终暂时在js层面强行replace了'为单引号,以后遇到其它符号有问题再解决吧

通过进一步打印输出发现,虽然数据库中存储的是' 但是我利用$this->dao->select得到的object进行打印显示select出来字符串中是正确的单引号。我在views中使用,得到的也是正常的单引号。 但是当我使用die(json_encode($objectName));后,js得到的网络返回又变成了' 而我之所以必须使用die(json_encode($objectName));进行返回,是由于引入的fullcalendar初始化数据的要求。而所以有点迷茫,感觉问题出在die(json_encode上,但是不知道如何解决。 最后破罐子破摔直接js replace完事


禅道版本:开源版12.4源码包

操作系统:CentOS

客户端浏览器:Chrome

版本较低,感谢一楼回复,不过客观现实是自己在此基础上做了很多不规范的二次开发,导致难以进行版本更新了


2024-06-27 15:11:18 张济骞 最后编辑
5个回复
于涛 沙发
目前禅道的版本是多少?之前禅道数据库在做INSERT的时候会将 ' 做html转义,20.1后版本是处理好了的,不过20系列是全新重构的,二开部分可能有兼容性,可以先在测试环境中升级后看下。升级不会影响数据的,但建议先做好备份
升级前请做好数据备份
升级请参考文档:http://www.zentao.net/book/zentaopmshelp/41.html
备份请参考文档:http://www.zentao.net/book/zentaopmshelp/42.html

2024-06-25 16:14:20 于涛 回帖
🍉
张济骞 板凳 回复#1

抱歉,只在积分问答页面提供了版本信息,忘了在这边贴上。 版本较低,感谢回复,不过客观现实是自己在此基础上做了很多不规范的二次开发,导致难以进行版本更新了

禅道版本:开源版12.4源码包

操作系统:CentOS

客户端浏览器:Chrome

2024-06-25 16:56:55 张济骞 最后编辑 2024-06-25 16:56:55 张济骞 回帖
马超 #3
已在“积分问答”界面回复
https://www.zentao.net/ask/597393/11439.html
2024-06-25 16:51:36 马超 回帖
合拍 #4

ok

2024-10-15 10:28:46 合拍 回帖
2024-10-16 09:44:16 禅道-李锡碧 回帖
联系人
刘璐/高级客户经理
电话(微信)
18562550650
QQ号码
2845263372
联系邮箱
liulu@chandao.com
返回顶部
刘璐
高级客户经理
18562550650
2845263372
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。 问题反馈反馈点击这里,让我们聆听您的建议与反馈。