更新

目录

update

参数说明备注
$param

要更新的内容在一维数组以 '更新的值数据库字段' => '更新值' 填写

对于筛选,不参与更新的,则存放于一个 名为'noset' 的数组中。如下代码所示

$data = array(    
              'group_id' => '3' //更新字段的值,即将符合条件的用户的用户组调整ID为3.    
               'noset' => array( //noset数组表示本数组内的任何数据都不参与更新行为    
                               'condition_group_id' => '2', //用户组筛选条件    
                               'user_id' => '200' //用户ID筛选条件    
                               )    
               );


必填
$fieldType字段类型绑定,与占位符长度一致的数组非必填。字段绑定具体请参阅PHP官网

内容需要进行更新,PESCMS提供了update()方法。update() 也是通过数组形式进行,不过需要注意的时,update()方法需要用到一个二维数组形式进行预处理,有别于其他方法。本章必须认真阅读理解,否则你很容易掉坑里面!

现在我们需要将用户组ID为2且用户ID大于200的用户调整为用户组ID为3。具体的代码如下:

<?php    
$data = array(    
              'group_id' => '3' //更新字段的值,即将符合条件的用户的用户组调整ID为3.    
               'noset' => array( //noset数组表示本数组内的任何数据都不参与更新行为    
                               'condition_group_id' => '2', //用户组筛选条件    
                               'user_id' => '200' //用户ID筛选条件    
                               )    
               );    
$this->db('user')->where('user_id > :user_id AND group_id = :condition_group_id')->update($data);//执行成功将返回影响行数,失败则返回false    
//生成的SQL语句:    
//UPDATE pes_user SET group_id = 3 WHERE user_id > '200' AND group_id = '2';

上述示例中,位于一维数组内的内容,即 'group_id' => '3' ,该键值表示对应的待更新表字段,内容为更新的内容。而noset旗下的数组,键值为筛选条件绑定的预处理参数,内容为绑定参数的值。

为何要做得这么麻烦呢?由于PDO预处理绑定的参数名称只能一个对一个,且为了更新语句的快捷,便引入一个二维数组noset进行封装不参与内容更新的绑定参数!

注:update() 方法的行为属于覆写数据。若您需要进行字段数据追加,请编写原生的SQL语句。请参考《原生SQL》

PESCMS DOC 文档系统
© Copyright 2015-2021. by the PESCMS DOC
耗时0.026秒