yii 框架Dao 数据操作用法

2017-06-02  本文已影响0人  孤岛渔夫
<?php

/**
 * Created by PhpStorm.
 * Date: 2017/6/2
 * Time: 17:08
 */
class Dao extends Controller
{
    //注意:涉及到表名要用{{表名}}才能自动加上表前缀
    //执行原生语句
    public function actionSql()
    {
        $res = Yii::app()->db->createCommand($sql)->execute();//返回影响条数
        //使用createCommand()操作数据库对象时,数据库返回的结果是数组
        createCommand($sql)->queryRow();//$sql 原生 sql语句//返回单条
        CreateCommand($sql)->queryAll();//返回集合
    }

    //插入
    public function actionCreate()
    {
        $res = Yii::app()->db->createCommand()->insert('表名', ['字段名' => '值']);
        Yii::app()->db->getLastInsertID();//获取最新插入的ID
    }

    //修改
    public function actionUpdate()
    {
        $res = Yii::app()->db->createCommand()->update('表名', ['字段名' => '值'], '字段名 > :值', [':值' => '值']);
    }

    //删除
    public function actionDelete()
    {
        $res = Yii::app()->db->createCommand()->delete('表名', '字段名 = :值', [':值' => '值']);
    }

    //查单条
    public function actionRow()
    {
        $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名 = :值', [':值' => '值'])->queryRow();
    }

    //查多条
    public function actionAll()
    {
        $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名 > :值', [':值' => '值'])->queryAll();
    }

    //统计数据 数量
    public function actionScalar()
    {
        $res = Yii::app()->db->createCommand()->select('count(字段名)')->from('表名')->where('字段名 < :值', [':值' => '值'])->queryScalar();
    }

    //指定列查询 id
    public function actionColumn()
    {
        $res = Yii::app()->db->createCommand()->select('id')->from('表名')->where('字段名 > :值', [':值' => '值'])->queryColumn();
    }

    //复杂查询方式
    public function actionAnd()
    {
        //查询ID 大于 1 并且 小于 5 的所有数据集合
        //and() 字串形式
        $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名1 > :值1 and 字段名1 < :值2', [':值1' => '值1', ':值2' => '值2'])->queryAll();

        //and() 数组形式
        $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where(['and', '字段名1 > 值1', '字段名1 < 值2'])->queryAll();

        //andWhere() 方法
        $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名 > :值', [':值' => '值'])->andWhere('字段名 < :值', [':值' => '值'])->queryAll();
    }

    //使用in 查询出 ID 在 5 和 6 之间的数据集合
    public function actionIn()
    {
        $res = Yii::app()->db->creatCommand()->select('字段名,字段名')->from('表名')->where('in', '字段名ID', [5, 6])->queryAll();
    }

    //使用like 查询 并且 id 大于6 小于 10
    public function actionLike()
    {
        $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where(['like', '字段名', '%关键字%'])->andWhere(['and', 'id > 6', 'id < 10'])->queryAll();
    }

    //查询出名字里 带有关键字的 的三条数据 ID 倒序 略过3条数据
    public function actionLimit()
    {
        $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where(['like', 'name', '%关键字%'])->limit(3)->offset(3)->order('id desc')->queryAll();
    }

    //关联查询
    public function actionJoin()
    {
        //查询 ID 大于2 小于6 的所有用户信息 并查询 城市名称
        $res = Yii::app()->db->createCommand()->select('u.id,u.name,c.name')
            ->from('表1 u')
            ->join('表2 c', 'c.id = u.cid')
            ->where('u.id > 2')
            ->andWhere('u.id < 6')
            ->queryAll();
    }


}
上一篇 下一篇

猜你喜欢

热点阅读