07. Yii 2.0 数据库交互 - Query Builder

Query Builder (查询构建器)

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

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

    1. 创建一个 yii\db\Query 对象来代表一条 SELECT SQL 语句的不同子句(例如   SELECT,   FROM,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 中创建如下方法:
    /**
     * 测试查询构建器
     */
    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.'
    
    
'; echo json_encode($res); }
然后,在浏览器地址栏访问:http://basic.com/test/test-q

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值