您的位置:首页 > 编程语言 > PHP开发

Yii2 深入了解模型之增删改查

2016-10-07 11:43 411 查看
1、ActiveRecord 类型的增删改查 

     以\app\models\Article 模型为准 , 来操作以下函数 

1) 查询数据 


    ①findAll 查询多条数据 


\app\models\Article::findAll([‘status’=>‘1’]);//查询 Article,status 为 1 的所有数据

②根据 findOne 进行查询 , 根式\app\models\Article::findOne(‘条件’); 

\app\models\Article::findOne(1); //直接根据 id 查询 

\app\models\Article::findOne([‘status’=>‘1’]); //根据指定条件查询

③根据 find()进行查询 ,find 可以连接查询 

//查询一条 id 等于 1 的数据 

\app\model\Article::find()->where([‘id’=>1])->one(); 

//查询 status 等于 1 的所有数据 

\app\model\Article::find()->where([‘status’=>‘1’])->all(); 



\app\model\Article::find()->where(‘status=:status’,[‘:status’=>‘1’])->all(); 

//查询 status 等于 1 的所有数据 , 根据 date 排序 

\app\model\Article::find()->where([‘status’=>‘1’])->orderBy(‘dateDESC’)->all(); 

//查询 status 等于 1 的数据 , 根据 date 排序 , 从第 5 条开始,读取 3 条 

\app\model\Article::find()->where([‘status’=>‘1’])->orderBy(‘dateDESC’)->offset(5)->limit(3)->all();

④更新一条数据 

   $article=\app\models\Article::findOne(1);

$article->title=‘changetitle’;


//save 函数第一个参数默认为 true, 就是更新或插入启动验证

//如果不想使用验证可以用 save(false);


$article->save();

⑤更新指定属性 updateAll(‘更新的属性’,‘条件’)

\app\models\Article::updateAll([‘title’=>‘changetitle’],[‘id’=>1]);

⑥添加一条新数据


$article=new\app\models\Article();


$article->title=‘newone’;

$article->content=‘thisisnew’;

$article->save();

⑦删除一条数据


\app\models\Article::findOne(1)->delete();

⑧删除指定条件的数据


\app\models\Article::deleteAll([‘id’=>2]);

2、\yii\db\Query 查询数据 


$db=new\yii\db\Query;


//查询一条 id 等于 2 的数据


$db->select('id')->from('mrs_article')->where("id=:id",[':id'=>2])->one();

$db->select('id')->from('mrs_article')->where([‘id’=>1])->one();

//查询多条


$db->select('id')->from('mrs_article')->where([‘status’=>‘1’])->all();


//in 查询多条

$db->select('id')->from('mrs_article')->where([‘id’=>[1,2]])->all();


//根据时间排序 ,并且从第 5 条开始获取 3 条

$db->select(‘id’)->from(‘mrs_article’)->orderBy(‘dateDESC’)->offset(5)->limit(3)->all()


//查询数据总个数

$db->select('id')->from('mrs_article')->count();

3、Yii::$app->db 进行增删改查

 ① 查询数据

 //查询一条数据 

\Yii::$app->db->createCommand(“SELECT*FROMmrs_article”)->queryOne();

 //绑定单个防注入参数 

\Yii::$app->db->createCommand(“SELECT * FROM mrs_article where id=:id”) ->bindValue(“:id”,2)->queryOne(); 

//绑定多个防注入参数

 \Yii::$app->db->createCommand(“SELECT * FROM mrs_article where id=:id AND status=:status”)->bindValues([‘:id’=>1,‘:status’=>‘1’])->queryOne();

 //查询多条数据 

\Yii::$app->db->createCommand(“SELECT*FROMmrs_article”)->queryAll(); 

//查询指定数据的字段的数据

 $db=\Yii::$app->db;

 $db->createCommand(“SELECTCOUNT(*)FROMmrs_article”)->queryScalar();


② 更新数据

$db=\Yii::$app->db->createCommand();

$db->update(‘mrs_article’,[‘status’=>0],“id=:id”,[‘:id’=>1])->execute();

  ③插入数据

$db=\Yii::$app->db->createCommand();


$db->insert(‘mrs_article’,[‘title’=>’newRecord’])->execute();

④删除数据


$db=\Yii::$app->db->createCommand();


$db->delete(‘mrs_article’,“id=:id”,[‘:id’=>1])->execute();









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: