• 技术文章 >php教程 >php手册

    yii数据库查询操作总结

    2016-06-13 09:07:30原创824

    yii数据库查询操作总结


    yii框架下关于数据库查询数据的方法总结。

    (1)$result=Yii::app()->dbName->createCommand($sql)->queryRow();

    返回的结果集如果不为空的话则为一个一维数组。代码中的dbName为数据表所在的库的名字,$sql可以为任意SQL语句。

    (2)$result=Yii::app()->dbName->createCommand($sql)->queryAll();

    返回的结果集如果不为空的话则为一个二维数组。代码中的dbName为数据表所在的库的名字,$sql可以为任意SQL语句。

    (3)$result=Region::model()->findByPk($id);

    返回的结果如果不为空的话则为一个对象,代码中的Region代表存放在models目录下的Region.php文件,这里的$id的值代表Region.php中定义的主键等于的值。

    (4)$result=Region::model()->findAll($condition,$params);

    例如:findAll("username=:name",array(":name"=>$username));

    返回的结果集如果不为空的话则为一个二维数组,数组第一维的结果集为对象。

    (5)$admin=User::model()->findAllByPk($postIDs,$condition,$params);

    例如:findAllByPk($id,"name like ':name' and age=:age",array(':name'=>$name,'age'=>$age));

    该方法是根据主键查询一个集合,返回的结果集如果不为空的话则为一个二维数组,数组第一维的结果集为对象。也可以使用多个主键,如:findAllByPk(array(1,2));

    (6)$admin=User::model()->findAllBySql($sql,$params);

    返回的结果集如果不为空的话则为一个二维数组,数组第一维的结果集为对象,使用示例如:

    findAllBySql("select * from admin where username=:name",array(':name'=>'admin'));

    (7)$post=Post::model()->findBySql($sql,$params);

    返回的结果集如果不为空的话则为一个对象,查询结果只是第一条数据。如:

    findBySql("select * from user where username=:name",array(':name'=>'phpernote.com'));

    (8)$row=User::model()->find($condition,$params);

    返回的结果集如果不为空的话则为一个对象,查询结果只是第一条数据。如:

    find('username=:name',array(':name'=>'admin'));

    或者:
     
    find(array('condition'=>'user_id=:user_id','params'=>array(':user_id'=>$uid)));

    (9)$admin=User::model()->findByAttributes($attributes,$condition,$params);

    该方法是根据条件查询数据,可以是多个条件,把条件放到数组里面,查询结果集为一个对象且只有一条数据,如:

    findByAttributes(array('username'=>'admin'));

    或者:


    (10)$admin=User::model()->findAllByAttributes($attributes,$condition,$params);

    返回的结果集如果不为空的话则为一个二维数组,数组第一维的结果集为对象。

    (9)

    // 如果查询条件很是复杂,就要使用CDbCriteria类

    $criteria=new CDbCriteria;
    $criteria->select='title';
    $creteria->condition='postID=:postID';
    $criteria->params=array(':postID'=>10);
    $post=Post::model()->find($criteria); // 不需要第二个参数

    // 另一种更好的写法

    $post=Post::model()->find(
     array(
            'select'=>'title',
            'condition'=>'postID=:postID',
            'params'=>array(':postID'=>10)
        )
    );

    查询个数,判断查询是否有结果

    1、$n=Post::model()->count($condition,$params);
     
    该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字,如:

    count("username=:name",array(":name"=>$username));    
     
    2、$n=Post::model()->countBySql($sql,$params);
     
    该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字,如:

    countBySql("select * from admin where username=:name",array(':name'=>'admin'));
     
    3、$exists=Post::model()->exists($condition,$params);
     
    该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到。

    您可能感兴趣的文章

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:yii 数据库 查询
    上一篇:php按单词截取字符串的方法,php截取字符串 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• PHP用代码实现文件下载• smarty的保留变量问题• PHP中SESSION使用中的一点经验总结• 大家在抢红包,程序员在研究红包算法,抢红包红包• 用PHP向数据库中实现简单的增删改查(纯代码,待完善),php增删
    1/1

    PHP中文网