yii2.0 数据库查询的方法举例

学习笔记 马富天 2016-06-28 10:00:57 95 1

【摘要】这是yii框架的model类的查询数据表的方法集合

举例分析,实现步骤:

1.创建一张表(留言表):

  1. CREATE TABLE `er_message` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `name` varchar(255) NOT NULL,
  4.   `email` varchar(255) NOT NULL,
  5.   `url` varchar(255) DEFAULT NULL,
  6.   `content` varchar(255) NOT NULL,
  7.   `addtime` timestamp NOT NULL,
  8.   `is_del` int(11) DEFAULT '0',
  9.   PRIMARY KEY (`id`)
  10. ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
  11. //	插入数据(省略)

2.设置表前缀

项目根目录下的config/db.php文件中添加:'tablePrefix' => 'er_',

  1. return [
  2. 	...
  3.     'charset' => 'utf8',
  4.     'tablePrefix' => 'er_',
  5.     ...
  6. ];

3.创建model类

在项目根目录下创建一个类,命名Message.php

  1. namespace app\models;
  2. use yii\db\Query;
  3. use yii\db\ActiveRecord;
  4. use yii\helpers\Html;
  5. class Message extends ActiveRecord
  6. {
  7. }

4.在需要创建Message类的控制器中引入命名空间

  1. use app\models\Message;

5.查询语句

1)返回所有数据

  1. $result = Message::find()->all();
  2. //	遍历输出结果集
  3. foreach ($result as $key => $value) {
  4. 	foreach ($value as $k => $v) {
  5. 		echo $k.':'.$v.'<br />';
  6. 	}
  7. }

2)查询主键id = 1的一条记录

  1. $result = Message::findOne(1);;
  2. foreach ($result as $k => $v) {
  3. 	echo $k.':'.$v.'<br />';
  4. }

3)返回['name' => '小小人']的一条数据

  1. $result = Message::find()->where(['name' => '小小人'])->one();
  2. foreach ($result as $k => $v) {
  3. 	echo $k.':'.$v.'<br />';
  4. }

4)返回['name' => '小小人']的所有数据

  1. $result = Message::find()->where(['name' => '小小人'])->all();
  2. foreach ($result as $k => $v) {
  3. 	foreach ($v as $key => $value) {
  4. 		echo $key.':'.$value.'<br />';
  5. 	}
  6. }

5)按id递减排序

  1. $result = Message::find()->orderBy('id DESC')->all();

6)使用SQL语句查询表中的所有数据

  1. $result = Message::findBySql('SELECT * FROM er_message')->all();

7)使用SQL语句查询表中的一条数据

  1. $result = Message::findBySql('SELECT * FROM er_message')->one();

8)统计符合条件的总记录条数

  1. $result = Message::find()->andWhere(['name' => '小小人', 'email' => 'xiaoxiaoren@126.com'])->count('id');

9)返回一条数据;

  1. Message::find()->one();

10)返回记录的数量

  1. Message::find()->count();

11)返回指定列的平均值

  1. Message::find()->average();

12)返回指定列的最小值

  1. Message::find()->min();

13)返回指定列的最大值

  1. Message::find()->max();

14)返回值的第一行第一列的查询结果

  1. Message::find()->scalar();

15)返回查询结果中的第一列的值

  1. Message::find()->column(); 

16)返回一个值指示是否包含查询结果的数据行

  1. Message::find()->exists();

17)每次取 3 条数据

  1. Message::find()->batch(3);

18)每次取 10 条数据, 迭代查询

  1. Message::find()->each(10);

如需更多方法,请查询官网地址:http://www.yiiframework.com/doc-2.0/yii-db-activequery.html

版权归 马富天个人博客 所有

本文标题:《yii2.0 数据库查询的方法举例》

本文链接地址:http://www.mafutian.com/151.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

1

1

上一篇《 MySQL存储过程简介及实例 》 下一篇《 input输入框绑定回车事件两种方式 》

所有评论

  1. 首页
  2. 上一页
  3. 1
  4. 下一页
  5. 尾页
  6. 第1页
  7. 每页12条
  8. 共1页
  9. 共1条
评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码

TOP10

  • 浏览最多
  • 评论最多