YII2.0 查询生成器-数据库访问

<?php

namespace app\controllers;

use yii;
use yii\web\Controller;
use yii\db\Query;

class DataController extends Controller
{

    public function actionIndex()
    {
        // 数据查询
        // 使用表前缀查询{{%table}}
//        $result = Yii::$app->getDb()->createCommand("SELECT COUNT([[id]]) FROM {{%user}}")->queryScalar();

        // 查询多条语句
        $result = Yii::$app->getDb()->createCommand('select * from {{user}}')->queryAll();
        // 查询一条语句
        $id = 'xxx';
        $result2 = Yii::$app->getDb()->createCommand("select * from  {{user}} where id  =:id")->bindValue('id', $id)->queryOne();

        var_dump($result);die;
    }
    public function actionInsert()
    {
        // 单条数据插入 成功返回1
        Yii::$app->getDb()->createCommand()->insert('user', [
            'name' => 'yanglu',
            'email' => '619508448@qq.com',
            'address' => '广东'
        ])->execute();

    }

    //批量插入数据
    public function actionBatch()
    {
        $res = Yii::$app->getDb()->createCommand()->dropTable('user1')->execute();
        // 成功返回插入记录的数量和
        $result = Yii::$app->getDb()->createCommand()->batchInsert('user',['name', 'email', 'address'], [
            ['张三, "6194@qq.com", '深圳'],
            ['李四', "4170@qq.com", '深圳'],
            ['王五', "542@qq,com", '北京'],
        ])->execute();
    }

    // 查询构建器
    public function actionSelect()
    {
        $query = new \yii\db\Query();
        $rows = $query->select('id as userId, name, email, address as addr')->from('user')->where(['name' => 'name'])->limit(10)->all();
        $rows2 = $query->select(['user.id as user_id', 'user.name', 'user.email', 'user.address as addr'])->from('user')->where(['name' => '杨利'])->limit(10)->all();

        $rows3 = $query->select('id, name, email')->from('user')->where(['like', 'name', 'xxx'])->limit(100)->all();

        $rows4 = (new Query())->select('id')->from('user');
        $rows5 = $query->from('user')->where(['id' => $rows4])->all();

        $rows6 = (new Query())->from('user')->where(['and', 'name="name..."',  'email = "61950844@qq.com"', 'address="xxxx"'])->orderBy('id desc')->all();
        $rows7 = (new Query())->from('user')->groupBy('id')->indexBy(function ($row){
            return $row['id'] . '_' . $row['name'];
        })->orderBy('id desc');

        foreach ($rows7->batch() as $batch) {
            var_dump($batch);die;
        }
        
        var_dump($rows7);


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值