zoukankan      html  css  js  c++  java
  • Yii2深入了解模型之增删改查(读写)

    1、ActiveRecord 类型的增删改查
    以appmodelsArticle 模型为准 , 来操作以下函数
    1) 查询数据
    ①findAll 查询多条数据
    appmodelsArticle::findAll([‘status’ => ‘1’]); //查询 Article , status 为 1 的所有数据
    ②根据 findOne 进行查询 , 根式appmodelsArticle::findOne(‘条件’);
    appmodelsArticle::findOne(1); //直接根据 id 查询
    appmodelsArticle::findOne([‘status’ => ‘1’]); //根据指定条件查询
    ③根据 find()进行查询 , find 可以连接查询
    //查询一条 id 等于 1 的数据
    appmodelArticle::find()->where([‘id’ => 1])->one();
    //查询 status 等于 1 的所有数据
    appmodelArticle::find()->where([‘status’ => ‘1’])->all();

    appmodelArticle::find()->where(‘status=:status’ , [‘:status’ => ‘1’])->all();
    //查询 status 等于 1 的所有数据 , 根据 date 排序
    appmodelArticle::find()->where([‘status’ => ‘1’])->orderBy(‘date DESC’)->all();
    //查询 status 等于 1 的数据 , 根据 date 排序 , 从第 5 条开始,读取 3 条

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

    //两表连查

    $sql="select * from class left join class_user on class.cid=class_user.class_id";
    $data['arr'] = Yii::$app->db->createCommand($sql)->queryAll();

    ④更新一条数据
    $article = appmodelsArticle::findOne(1);
    $article -> title = ‘change title’;
    //save 函数第一个参数默认为 true , 就是更新或插入启动验证
    //如果不想使用验证可以用 save(false);
    $article -> save();
    ⑤更新指定属性 updateAll(‘更新的属性’ , ‘条件’ )
    appmodelsArticle::updateAll([‘title’ => ‘change title’ ] , [‘id’ => 1]);
    ⑥添加一条新数据
    $article = new appmodelsArticle();
    $article -> title = ‘new one’;
    $article -> content = ‘this is new’;

    $article -> save();

    ⑦删除一条数据
    appmodelsArticle::findOne(1)->delete();
    ⑧删除指定条件的数据
    appmodelsArticle::deleteAll([‘id’ => 2]);

    批量删除

    $this->deleteAll("tid in($tid)");
    2、yiidbQuery 查询数据
    $db = new yiidbQuery;
    //查询一条 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();
    3、Yii::$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();

  • 相关阅读:
    Two strings CodeForces
    Dasha and Photos CodeForces
    Largest Beautiful Number CodeForces
    Timetable CodeForces
    Financiers Game CodeForces
    AC日记——整理药名 openjudge 1.7 15
    AC日记——大小写字母互换 openjudge 1.7 14
    AC日记——将字符串中的小写字母换成大写字母 openjudge 1.7 13
    AC日记——加密的病历单 openjudge 1.7 12
    AC日记——潜伏着 openjudge 1.7 11
  • 原文地址:https://www.cnblogs.com/wepe/p/7424604.html
Copyright © 2011-2022 走看看