[moka同学笔记]yii2.0查询数据库

  一、 [:id占位符]使用
 $results = Test::findBySql($sql,array(':id'=>'1 or 1=1))->all()
  二、 [id=1]  选出id为1的数据
 $results = Test::find()->where(['id'=>1])-all();

三、  [id>0]  选出id>0的数据

 $results = Test::find()->where(['>','id',0])->all()

四、 [id>=1 并且id<=2]

 $results = Test::find()->where(['between','id',1,2])->all()

五、[like] 查询出title中含有title1的数据

$results = Test::find()->where(['like','title','title1'])->all()

六、[ 查询结果转换成数组]

          ->aeArray()
$results = Test::find()->where(['like','title','title1'])->asArray()->all()

七、批量查询

 foreach( Test::find()->batch(2) as $tests){   //分批到数据库里拿数据,每次拿2条
print_r(count($tests)); //打印出所查询到的数据
}
  八、删除数据
         方法一:      $results = Test::find()->where(['id'=>1])->all();  //查询出id为1的数据
$results[0]->delete(); //删除查询出来的数据
方法二: Test::deleteAll(); //删除所以数据
Test::deleteAll('id>:id',array(':id'=>0)); //删除id>0的数据
  九、增加数据
          $test = new Test;
$test->id=3; //给id赋值为3
$test->title = 'title3'; //给title赋值为title3
$test-save(); //保存

注~

        数据保存数据时候,需要验证,在model中可以使用rules()方法
        再在控制器中写
 $test->validate();
if($test->hasErrors()){
echo 'data有错误!';
die();
}

       十、数据的修改

          $test = Test::find()->where(['id'=>4])->one();
$test->title = 'title4';
$test->save();

  

 moka同学笔记转载请注明出处。QQ1727728211
 
 
上一篇:活久见,为什么SHOW TABLE STATUS总是不更新2


下一篇:绝世好题bzoj4300