删改数据

在单表操作中可以用到删改数据方法,包括update(多联表也可),deleteadd

update方法为更新数据,返回成功(true)或者失败(false),条件内容参考后面选择器的使用

  1. // update `DATABASE`.`TABLE` set `name`='xxx', `type`=5
  2. $result = $this->testDAO->update(array('name'=>'xxx', 'type'=>5));

delete方法返回成功(true)或者失败(false),条件内容参考后面选择器的使用

  1. // delete from `DATABASE`.`TABLE`
  2. $result = $this->testDAO->delete();

add方法 insert成功时默认返回数据库新插入自增ID,第二个参数为false时 返回成功(true)或者失败(false

  1. // insert into `DATABASE`.`TABLE` (`name`,`type`) values('test', 1)
  2. $sets = array('name'=>'test', 'type'=>1);
  3. // false 时返回true/false
  4. $id = $this->testDAO->add($sets, false);

框架同时也提供了受影响行数的返回,可以在/config/config.php中,将字段returnAffectedRows置为true即可

addCount方法返回成功(true)或者失败(false),相当于update set count = count+n

  1. // update `DATABASE`.`TABLE` set `type`=`type`+5
  2. $result = $this->testDAO->addCount(array('type'=>5);

注意:新版本addCount方法可以被update方法替代,目前暂时还保留,但已不建议使用。使用方法如下:

  1. // update `DATABASE`.`TABLE` set `type`=`type`+5
  2. $result = $this->testDAO->update(['type'=>['+'=>5]]);
  3. // update `DATABASE`.`TABLE` set `type`=`count`-`num`-4
  4. $result = $this->testDAO->update(['type'=>['-'=>['count', 'num', 4]]]);

createOrUpdate方法 为添加数据,但当有重复键值时会自动update数据

  1. // 第一个参数为insert数组,第二个参数为失败时update参数,不传即为第一个参数
  2. $sets = array('name'=>'test', 'type'=>1);
  3. $result = $this->testDAO->createOrUpdate($sets);

addList(或insertList)方法为批量添加数据,第二个参数为批量执行的个数,默认一次执行100行返回成功(true)或者失败(false

  1. // 参数为批量数据值(二维数组),键值必须统一
  2. $sets = array(
  3. array('name'=>'test1', 'type'=>1),
  4. array('name'=>'test2', 'type'=>2),
  5. );
  6. $result = $this->testDAO->addList($sets);

Biny 2.9.0之后,支持insert方法,作用等同于add

addList/insertList支持replace into / insert ignore逻辑, 默认null

第三个参数为true时,会以replace into 逻辑执行,false时,会以insert ignore into 逻辑执行

  1. // REPLACE INTO TABLE ...
  2. $sets = array(
  3. array('name'=>'test1', 'type'=>1),
  4. array('name'=>'test2', 'type'=>2),
  5. );
  6. $result = $this->testDAO->addList($sets, 100, true);