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

本文详细介绍了使用Yii框架进行数据库操作的方法,包括ActiveRecord类型的增删改查、使用yiidbQuery进行数据检索及Yii::$app->db的各种操作。涵盖查询、更新、插入和删除等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1ActiveRecord类型的增删改查以\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(‘date DESC’)->all();

 

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

 

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

 

④更新一条数据

 

$article = \app\models\Article::findOne(1); $article -> title = ‘change title’;

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

 

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

 

⑤更新指定属性 updateAll(‘更新的属性’ , ‘条件’ ) \app\models\Article::updateAll([‘title’ => ‘change title’ ] , [‘id’ => 1]);

 

⑥添加一条新数据

 

$article = new \app\models\Article(); $article -> title = ‘new one’;

$article -> content = ‘this is new’; $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(‘date DESC’)->offset(5)->limit(3)->all()

 

//查询数据总个数

 

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

 

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

 

① 查询数据//查询一条数据

 

\Yii::$app->db->createCommand(“SELECT * FROM mrs_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 * FROM mrs_article”)->queryAll();

 

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

 

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

 

$db->createCommand(“SELECT COUNT(*) FROM mrs_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’=>’new Record’] )->execute();


④删除数据

 

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值