Yii的CURD
總結
查詢數據庫的四種方式:
? ? ? ? ? AR是模型方式? ? ? ? ? ? ? ? ? ? ? ? ?示例:表明::方法名
? ? ? ? ? querybuild是new新建方式? ? ? ?示例:$db = new \yii\db\Query(); $db->方法名;
? ? ? ? ? ?command是應用主體? ? ? ? ? ? ? 示例:createCommand
? ? ? ? ? ?findbysql? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??示例:參照例子
控制器的方式:
? ? ? self是引用本身控制器中的靜態類方法
? ? ? $this是引用本身控制器中的普通方法
AR
查詢
1. 查詢所有 Article::findAll(['status'=>1]);2.查詢一條 Article::findOne(1); //根據ID查詢 Article::findOne(['status' => 1]); //根據條件查詢3.find()方法返回yii\db\ActiveQuery查詢 Article::find()->where(['id'=>1])->one(); //ID等于1的一條數據 Article::find()->where(['status'=>1])->all(); //狀態等于1的所有數據 //這個就是在賦值而已! Article::find()->where('status=:status',[':status'=>1])->all(); //狀態等于1的所有數據 //查詢狀態等于1的數據并根據排序 Article::find()->where(['status'=>1])->orderBy('pubdate DESC')->all(); //查詢狀態等于1的數據并根據pubdate排序,從第10條開始,取4條 Article::find()->where(['status'=>1])->orderBy('pubdate ASC')->offset(10)->limit(4)->all();增改刪
//修改 //save()方法的第一個參數布爾值表示更新或插入時是否開啟驗證,默認為true //if($user->save(true,['password_hash'])) $article = Article::findOne(1); $article->title = '更改'; $article->save(); //指定更新 Article::updateAll(['title'=>'測試1指定的跟新'],['id'=>1]);//新增 $article = new Article(); $article->title = '測試添加標題1'; $article->content = '測試添加內容1'; $article->desc = '測試添加描述1'; $article->save();//刪除 //刪除一條 Article::findOne(16)->delete(); //刪除指定 Article::deleteAll(['id'=>16]);Querybuild
$db = new \yii\db\Query();1.查詢一條ID為2的數據 $db->select('id,title,content')->from('article')->where('id=:id',[':id'=>2])->one(); $db->select('id,title,content')->from('article')->where(['id'=>2])->one());2.查詢多條 $db->select('id,title,content')->from('article')->where(['status'=>1])->all(); $db->select('id,title,content')->from('article')->where(['id'=>[1,2]])->all()3.根據pubdate排序,從第10條開始,取4條 $db->select('id,title,content')->from('article')->orderBy('pubdate DESC')->offset(10)->limit(4)->all();4.統計查詢 $db->select('id')->from('article')->count();createCommand
查詢
$db = \Yii::$app->db;1.查詢一條 $db->createCommand('SELECT * FROM `article`')->queryOne();2.綁定單個防SQL注入參數 $db->createCommand('SELECT * FROM `article` WHERE id=:id')->bindValue(":id",2)->queryOne();3.綁定多個防SQL注入參數 $db->createCommand('SELECT * FROM `article` WHERE id=:id AND status=:status')->bindValues([':id'=>1,':status'=>1])->queryOne();4.查詢多條 $db->createCommand('SELECT * FROM `article`')->queryAll();5.統計查詢 $db->createCommand('SELECT COUNT("id") FROM `article`')->queryScalar();增改刪
1.更新數據 $db->createCommand()->update('`article`',['status'=>0],'id=:id',[':id'=>9])->execute();2.插入數據 $db->createCommand() ->insert('`article`',['title'=>'標題16','desc'=>'描述16','content'=>'內容16'])->execute();3.一次插入多行 $db->createCommand()->batchInsert('`article`',['title','desc','content'],[['17','17','17'],['18','18','18'],['19','19','19'] ])->execute();4.刪除數據 $db->createCommand()->delete('`article`','status=0')->execute();findbysql
//查詢所有的 $sql = "select * from user where UserId = :id"; $res = user::findBySql($sql,['id'=>1])->all(); print_r($res[0]); //只需查詢一條的 $res = user::findBySql($sql,['id'=>1])->one(); print_r($res);?
總結
- 上一篇: PHP的- = :: self $t
- 下一篇: 项目施工第一次工地会议召开的条件是什么?