博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】这是yii框架的model类的查询数据表的方法集合
举例分析,实现步骤:
1.创建一张表(留言表):
CREATE TABLE `er_message` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`url` varchar(255) DEFAULT NULL,
`content` varchar(255) NOT NULL,
`addtime` timestamp NOT NULL,
`is_del` int(11) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
// 插入数据(省略)
2.设置表前缀
项目根目录下的config/db.php文件中添加:'tablePrefix' => 'er_',
return [
...
'charset' => 'utf8',
'tablePrefix' => 'er_',
...
];
3.创建model类
在项目根目录下创建一个类,命名Message.php
namespace app\models;
use yii\db\Query;
use yii\db\ActiveRecord;
use yii\helpers\Html;
class Message extends ActiveRecord
{
}
4.在需要创建Message类的控制器中引入命名空间
use app\models\Message;
5.查询语句
1)返回所有数据
$result = Message::find()->all();
// 遍历输出结果集
foreach ($result as $key => $value) {
foreach ($value as $k => $v) {
echo $k.':'.$v.'<br />';
}
}
2)查询主键id = 1的一条记录
$result = Message::findOne(1);;
foreach ($result as $k => $v) {
echo $k.':'.$v.'<br />';
}
3)返回['name' => '小小人']的一条数据
$result = Message::find()->where(['name' => '小小人'])->one();
foreach ($result as $k => $v) {
echo $k.':'.$v.'<br />';
}
4)返回['name' => '小小人']的所有数据
$result = Message::find()->where(['name' => '小小人'])->all();
foreach ($result as $k => $v) {
foreach ($v as $key => $value) {
echo $key.':'.$value.'<br />';
}
}
5)按id递减排序
$result = Message::find()->orderBy('id DESC')->all();
6)使用SQL语句查询表中的所有数据
$result = Message::findBySql('SELECT * FROM er_message')->all();
7)使用SQL语句查询表中的一条数据
$result = Message::findBySql('SELECT * FROM er_message')->one();
8)统计符合条件的总记录条数
$result = Message::find()->andWhere(['name' => '小小人', 'email' => '[email protected]'])->count('id');
9)返回一条数据;
Message::find()->one();
10)返回记录的数量
Message::find()->count();
11)返回指定列的平均值
Message::find()->average();
12)返回指定列的最小值
Message::find()->min();
13)返回指定列的最大值
Message::find()->max();
14)返回值的第一行第一列的查询结果
Message::find()->scalar();
15)返回查询结果中的第一列的值
Message::find()->column();
16)返回一个值指示是否包含查询结果的数据行
Message::find()->exists();
17)每次取 3 条数据
Message::find()->batch(3);
18)每次取 10 条数据, 迭代查询
Message::find()->each(10);
如需更多方法,请查询官网地址:http://www.yiiframework.com/doc-2.0/yii-db-activequery.html
版权归 马富天PHP博客 所有
本文标题:《yii2.0 数据库查询的方法举例》
本文链接地址:http://www.mafutian.net/151.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶1
踩1
第 1 楼 蒸汽回收机 2016-07-01 09:03:05 山东济南
评论审核未开启 |