更新数据.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])}',
]);
上次更新: 2018/11/14 上午9:23:00