原因:因为PHP是弱类型语言,所以int和string有时会混乱使用,导致使用DDM云服务时,出现了转义字符串的问题。
表结构
详情:当你更新语句 【UPDATE testSET `value` ='1' WHERE `id` =1;】
value是字符串1时,它会自动转成【UPDATE testSET `value` =X'30' WHERE `id` =1;】,更新后value的值变成49。
找了很久的原因,确定了问题不在代码逻辑以及DDM服务那边,终于找到了配置问题,PDO的ATTR_EMULATE_PREPARES配置为true即可。
解决:
laravel框架中的配置
拓展:虽然这样解决了,但是当前端使用的是强类型语言时,会遇到另一个问题,那就是返回的数据中int类型的字段变成了string类型,目前没找到什么特别简便的方法,比较笨的在每个Model中配置了$casts,如图,
所有需要int返回的数据都配置成integer
如果有简便的配置方法欢迎交流