🍉

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

回贴
3个回复
阅读数 148
发表时间 2024-06-25 15:47:50
张济骞
  • 访问次数 7
  • 注册日期 2019-08-26
  • 最后登录 2024-06-28
  • 我的积分 60
楼主

新建了一个模块, 其中一个字段人名在数据库表中使用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
3个回复
于涛
  • 访问次数 1301
  • 注册日期 2020-08-10
  • 最后登录 2024-07-10
  • 我的积分 15819
沙发
目前禅道的版本是多少?之前禅道数据库在做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
🍉
张济骞
  • 访问次数 7
  • 注册日期 2019-08-26
  • 最后登录 2024-06-28
  • 我的积分 60
板凳

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

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

操作系统:CentOS

客户端浏览器:Chrome

张济骞 最后编辑, 2024-06-25 16:56:55 张济骞 最后编辑, 2024-06-25 16:56:55
马超
  • 访问次数 1771
  • 注册日期 2018-06-20
  • 最后登录 2024-07-12
  • 我的积分 6773
#3
已在“积分问答”界面回复
https://www.zentao.net/ask/597393/11439.html
马超 最后编辑, 2024-06-25 16:51:36
返回顶部
刘璐
高级客户经理
18562550650
2845263372
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。