加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

ORM的FuelPHP更新导致“而不是“零星的

发布时间:2020-12-15 03:01:53 所属栏目:Java 来源:网络整理
导读:我正在使用 PHP 5.4.4并且我使用FuelPHP ORM保存和更新功能得到了非常奇怪的行为. 我正在尝试将序列化或JSON数据保存到数据库中的字段,所以像{“name”:“michael”}.当我在Model :: forge()之后直接使用model- save()时,它似乎在100%的时间内正常工作,你
我正在使用 PHP 5.4.4并且我使用FuelPHP ORM保存和更新功能得到了非常奇怪的行为.

我正在尝试将序列化或JSON数据保存到数据库中的字段,所以像{“name”:“michael”}.当我在Model :: forge()之后直接使用model-> save()时,它似乎在100%的时间内正常工作,你看到的字符串是存储在MySQL数据库中的字符串.

但是,如果我立即更改类似model-> property =’new property'(不是JSON或序列化数据属性)然后再执行另一个模型 – > save(),它将90%的时间将我的所有“转换为” &安培; QUOT;

似乎当我调试问题并逐行执行时,它不会重现此问题!它将通过整个脚本,仍然有正确的“而不是& quot;

这个问题让我疯了.我会假设它配置的东西或者会有更多的抱怨,但我找不到合适的开关.我已经设置了两个
php_flag magic_quotes_gpc关闭和php_flag magic_quotes_runtime在我的.htaccess中关闭(虽然在PHP 5.4中不应该这样做)并且验证两者都是假的.

我在这里没有想法.任何调查都会非常有帮助.

解决方法

您的ORM可能使用某种转义函数来保存您的json字符串.这是一个防止sql注入攻击的安全功能.如果需要存储json,请使用MongoDB或CouchDB等noSql解决方案.否则你需要在你的mysql出来之后和解码之前清理你的json字符串.

http://dev.mysql.com/doc/refman/5.0/en/string-literals.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读