[转]YII2 常用数据库操作 - 涛哥博客
点击这里给我发消息 QQ登录
【原创】 [转]YII2 常用数据库操作
栏目:php  作者:力涛  阅读:(172)

对象操作

查询

[php] view plain copy

  1. //1.简单查询  

  2. $admin=Admin::model()->findAll($condition,$params);  

  3. $admin=Admin::model()->findAll("username=:name",array(":name"=>$username));  

  4.    

  5. $infoArr= NewsList::model()->findAll("status = '1' ORDER BY id DESC limit 10 ");  

  6.    

  7. //2. findAllByPk(该方法是根据主键查询一个集合,可以使用多个主键)  

  8. $admin=Admin::model()->findAllByPk($postIDs,$condition,$params);  

  9. $admin=Admin::model()->findAllByPk($id,"name like :name and age=:age",array(':name'=>$name,'age'=>$age));  

  10. $admin=Admin::model()->findAllByPk(array(1,2));  

  11.    

  12. //3.findAllByAttributes (该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面)  

  13. $admin=Admin::model()->findAllByAttributes($attributes,$condition,$params);  

  14. $admin=Admin::model()->findAllByAttributes(array('username'=>'admin'));  

  15.    

  16. //4.findAllBySql (该方法是根据SQL语句查询一个数组)  

  17. $admin=Admin::model()->findAllBySql($sql,$params);  

  18. $admin=Admin::model()->findAllBySql("select * from admin where username like :name",array(':name'=>'%ad%'));  

  19. User::find()->all();    此方法返回所有数据;  

  20. User::findOne($id);   此方法返回 主键 id=1  的一条数据(举个例子);   

  21. User::find()->where(['name' => '小伙儿'])->one();   此方法返回 ['name' => '小伙儿'] 的一条数据;  

  22. User::find()->where(['name' => '小伙儿'])->all();   此方法返回 ['name' => '小伙儿'] 的所有数据;  

  23. User::find()->orderBy('id DESC')->all();   此方法是排序查询;  

  24. User::findBySql('SELECT * FROM user')->all();  此方法是用 sql  语句查询 user 表里面的所有数据;  

  25. User::findBySql('SELECT * FROM user')->one();  此方法是用 sql  语句查询 user 表里面的一条数据;  

  26. User::find()->andWhere(['sex' => '男''age' => '24'])->count('id');   统计符合条件的总条数;  

  27. User::find()->one();    此方法返回一条数据;  

  28. User::find()->all();    此方法返回所有数据;  

  29. User::find()->count();    此方法返回记录的数量;  

  30. User::find()->average();    此方法返回指定列的平均值;  

  31. User::find()->min();    此方法返回指定列的最小值 ;  

  32. User::find()->max();    此方法返回指定列的最大值 ;  

  33. User::find()->scalar();    此方法返回值的第一行第一列的查询结果;  

  34. User::find()->column();    此方法返回查询结果中的第一列的值;  

  35. User::find()->exists();    此方法返回一个值指示是否包含查询结果的数据行;  

  36. User::find()->batch(10);  每次取 10 条数据   

  37. User::find()->each(10);  每次取 10 条数据, 迭代查询  

  38. 二、查询对象的方法  

  39. //根据主键查询出一个对象,如:findByPk(1);  

  40. $admin=Admin::model()->findByPk($postID,$condition,$params);  

  41. $admin=Admin::model()->findByPk(1);  

  42.    

  43. //根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据  

  44. $row=Admin::model()->find($condition,$params);  

  45. $row=Admin::model()->find('username=:name',array(':name'=>'admin'));  

  46.    

  47. //该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,查询的也是第一条数据  

  48. $admin=Admin::model()->findByAttributes($attributes,$condition,$params);  

  49. $admin=Admin::model()->findByAttributes(array('username'=>'admin'));  

  50.    

  51. //该方法是根据SQL语句查询一组数据,他查询的也是第一条数据  

  52. $admin=Admin::model()->findBySql($sql,$params);  

  53. $admin=Admin::model()->findBySql("select * from admin where username=:name",array(':name'=>'admin'));  

  54.    

  55. //拼一个获得SQL的方法,在根据find查询出一个对象   

  56. $criteria=newCDbCriteria;   

  57. $criteria->select='username';// only select the 'title' column   

  58. $criteria->condition='username=:username';    //请注意,这是一个查询的条件,且只有一个查询条件.多条件用addCondition  

  59. $criteria->params=array(":username=>'admin'");  

  60. $criteria->order ="id DESC";  

  61. $criteria->limit ="3";  

  62. $post=Post::model()->find($criteria);// $params isnot needed   

  63.    

  64. //多条件查询的语句  

  65. $criterianew CDbCriteria;       

  66. $criteria->addCondition("id=1");//查询条件,即where id = 1   

  67. $criteria->addInCondition('id',array(1,2,3,4,5));//代表where id IN (1,2,3,4,5,);   

  68. $criteria->addNotInCondition('id',array(1,2,3,4,5));//与上面正好相法,是NOT IN   

  69. $criteria->addCondition('id=1','OR');//这是OR条件,多个条件的时候,该条件是OR而非AND   

  70. $criteria->addSearchCondition('name','分类');//搜索条件,其实代表了。。where name like '%分类%'   

  71. $criteria->addBetweenCondition('id', 1, 4);//between 1 and 4  

  72. $criteria->compare('id', 1);   //这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition.  

  73. $criteria->compare('id',array(1,2,3));   //即如果第二个参数是数组就会调用addInCondition   

  74.    

  75.    

  76. $criteria->select ='id,parentid,name';//代表了要查询的字段,默认select='*';   

  77. $criteria->join ='xxx'//连接表   

  78. $criteria->with ='xxx'//调用relations    

  79. $criteria->limit = 10;   //取1条数据,如果小于0,则不作处理   

  80. $criteria->offset = 1;  //两条合并起来,则表示 limit 10 offset 1,或者代表了。limit 1,10   

  81. $criteria->order ='xxx DESC,XXX ASC' ;//排序条件   

  82. <span style="box-sizing: border-box; margin: 0px; padding


下一篇: 没有了


昵称
邮箱
域名
  记住 通知博主
验证码