联系官方销售客服

1835022288

028-61286886

开发框架 版主:迅睿框架研发组
set语法在thinkphp内核下报错问题
类型:迅睿CMS 更新时间:2022-11-11 11:00:07 数据库操作

这个更新语句在ThinkPHP中报错

$db = \Phpcmf\Service::M()->db->table('mytable');
$db->where('id', 2);
$db->set('field', 'field + 1', false); 
$db->update();

在CI内核正常。

文档地址数据库操作,开发入门,PHP开源CMS系统帮助文档 (xunruicms.com)

回帖
  • 迅睿框架技术-岳老师
    #1楼    迅睿框架技术-岳老师
    2022-11-11 09:56:27
    Chrome 0
    已验证,没有报错
    image
  • zooxen
    #2楼    zooxen
    2022-11-11 10:23:01
    Edge 0
    迅睿框架技术-岳老师 我是多次计算
    $db = $this->db->table(mytable);
    $db->where('id', $id);
    $db->set('length', '`length` + ' . $data[1]['length'] . ' - ' . $old['length'], false);
    $db->update();
    会报错

    image
    如果我改成
    $db = $this->db->table(mytable);
    $db->where('id', $id);
    $db->set('length', '`length` + 1', false);
    $db->update();
    是不报错了,但数据库数据其实没有更新所以您刚才这个测试,数据库信息有更新吗
  • 迅睿框架技术-岳老师
    #3楼    迅睿框架技术-岳老师
    2022-11-11 10:31:04
    Chrome 0
    下面调试器(标签诊断器 )sql语句都解析出来, 去数据库观察是有累加
    满意答案
  • zooxen
    #4楼    zooxen
    2022-11-11 11:00:07
    Edge 0
    @迅睿框架技术-岳老师:OK了,我测试完是CI内核支持我上述的连续计算符,TP不支持,只能先把结果算出来