• 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();

  • 相关阅读:
    Huffman
    如何实现伪双击事件
    关于DevExpress的XtraTreeList使用方法总结
    总结DevExpress10个使用技巧
    浅谈WebService返回数据效率对比
    用于RichTextBox控件记录日志信息
    .Net(C#)自定义WinForm控件之小结篇(强力推荐)
    webbrowser自动实现登录博客园
    Win7系统应用程序不能拖放文件原来又是UAC是惹的祸
    winfrom 树形控件如何实现鼠标经过节点时光标颜色改变效果
  • 原文地址:https://www.cnblogs.com/wepe/p/7424604.html
Copyright © 2020-2023  润新知