07. Yii 2.0 数据库交互

来源:互联网 发布:高级软件测试书 编辑:程序博客网 时间:2024/06/06 01:42
Query Builder (查询构建器)

查询构建器建立在 Database Access Objects 基础之上,可让你创建 程序化的、DBMS(Database Management System 数据库管理系统,如:MySQL、ORACLE、MSSQL、DB2、ACCESS等)无关的SQL语句。相比于原生的SQL语句,查询构建器可以帮你写出可读性更强的SQL相关的代码,并生成安全性更强的SQL语句,用于数据库查询(读操作)。

使用查询构建器通常包含以下两个步骤:

    1. 创建一个 yii\db\Query 对象来代表一条 SELECT SQL 语句的不同子句(例如 SELECTFROM,WHERE,JOIN)。
    2. 执行 yii\db\Query 的一个查询方法(例如:all()、one()、count())从数据库当中检索数据。

示例:
以 Yii 2.0 基础版为例,高级版类似。
为了更方便地创建  yii\db\Query 对象,我们可以将其注册为一个组件,方法如下:
在 basic/config/web.php 中的 $config 中的 components 所指向的数组中,注册自定义的组件,即添加如下的键值对:

        // 自定义组件 Q
        'Q'    => 'yii\db\Query',

说明: yii\db\Query指向的是 E:\xampp\htdocs\basic\vendor\yiisoft\yii2\db\Query.php 文件。

在控制器 TestController.php 中创建如下方法:
  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17
/**
* 测试查询构建器
*/
public function actionTestQ(){
$q = new \yii\db\Query(); // 直接实例化 Query 对象,推荐用这种方式,因为有输入提示
// $q = \Yii::$app->Q; // 也可以用组件的方式
// 查询所有 id>3 的记录,如果查询单条记录,可以用 one 方法代替 all 方法
$res = $q->select('id,username')->from('basic_user')->where(['>','id',3])->all();
// $res = $q->select('id,username')->from('basic_user')->where(['>','id',3])->createCommand()->queryAll();
// 统计记录数
$count = $q->select('id,username')->from('basic_user')->where(['>','id',3])->count();
echo $count.'<hr>';
echo json_encode($res);
}
 来自CODE的代码片
snippet_file_0.php
然后,在浏览器地址栏访问:http://basic.com/test/test-q

 yii\db\Query 对象支持很多连贯操作,如 select、from、where、offset、limit、orderBy、groupBy、join、union、createCommand等等,详情可参考:Yii 2.0 手册 - 查询构建器。
原创粉丝点击