- 更新数据.update
- 函数原型
- 用法如下:
- 支持 forUpdate
- 支持限制条件
- 支持 orderBy
- 支持 join
- 绑定参数
- 表达式支持
更新数据.update
函数原型
更新成功后,返回影响行数,没有修改记录返回 0。
public function update($mixData, $arrBind = [], $bFlag = false);
用法如下:
# UPDATE `test` SET `test`.`name`=:name WHERE `test`.`id` = 503/*([name] => Array([0] => 小猪[1] => 2))*/Db::table('test')->where('id', 503)->update(['name' => '小猪']);
支持 forUpdate
# UPDATE `test` SET `test`.`name`=:name WHERE `test`.`id` = 503 FOR UPDATE/*([name] => Array([0] => 小猪[1] => 2))*/Db::table('test')->where('id', 503)->forUpdate()->update(['name' => '小猪']);
支持限制条件
# UPDATE `test` SET `zt_test`.`name`=:name WHERE `test`.`id` = 503 LIMIT 0,2/*([name] => Array([0] => 小猪[1] => 2))*/Db::table('test')->where('id', 503)->top(2)->update(['name' => '小猪']);
支持 orderBy
# UPDATE `test` SET `test`.`name`=:name WHERE `test`.`id` = 503 ORDER BY `test`.`id` DESC/*([name] => Array([0] => 小猪[1] => 2))*/Db::table('test')->where('id', 503)->orderBy('id desc')->update(['name' => '小猪']);
支持 join
# UPDATE `test` `t` INNER JOIN `hello` `h` ON `t`.`id` = `h`.`size` SET `t`.`name`=:name WHERE `t`.`id` = 503/*([name] => Array([0] => 小猪[1] => 2))*/Db::table('test as t')->join('hello as h', '', 't.id', '=', '{[size]}')->where('id', 503)->update(['name' => '小猪']);
绑定参数
# UPDATE `test` SET `test`.`name`=:hello,`test`.`value`=:questionmark_0 WHERE `test`.`id` = 503/*([questionmark_0] => Array([0] => 小牛逼[1] => 2)[hello] => hello world!)*/Db::table('test')->where('id', 503)->bind('小牛逼')->update(['name' => '[:hello]','value' => '[?]',],['hello' => 'hello world!',]);
表达式支持
# UPDATE `test` SET `zt_test`.`name` = concat(`test`.`value`,`test`.`name`) WHERE `test`.`id` = 503/*()*/Db::table('test')->where('id', 503)->update(['name' => '{concat([value],[name])}',]);
