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();
以\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();
相关文章推荐
- Yii2 深入了解模型之增删改查
- Yii2 深入了解模型之增删改查
- Yii2深入了解模型之增删改查(读写)
- 深入了解 Flexbox 伸缩盒模型
- 深入了解一下Redis的内存模型!
- 深入了解几种IO模型(阻塞非阻塞,同步异步)
- 深入了解Java“双亲委派”模型
- 深入了解 Flexbox 伸缩盒模型
- 深入了解软件开发瀑布模型
- 深入了解 Flexbox 伸缩盒模型
- 深入了解Linux设备模型
- 深入了解 Flexbox 伸缩盒模型
- 读深入了解c++内核对象模型小结(1/3/4)
- 深入了解yii2框架
- 深入了解超线程、双核CPU、双CPU与单CPU的区别
- 创建控制器的3种方式、深入了解view的创建和加载顺序
- 深入解析:分布式系统的事务处理经典问题及模型
- 深入了解JVMzz
- Tensorflow学习精要版IV ---- 开始稍微深入了解一下
- Head First HTML & CSS chapter 2 :深入了解超文本