Home  >  Article  >  php教程  >  yii数据库查询操作总结

yii数据库查询操作总结

WBOY
WBOYOriginal
2016-06-13 09:07:301496browse

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 mysql数据库操作类
  • Mysql 数据库缓存cache功能分析,调试以及性能总结
  • Navicat for mysql 远程连接 mySql数据库提示10061,1045错误的解决办法
  • 针对MySQL提高百万条数据的查询速度优化
  • mysql服务器主从数据库同步配置
  • MySQL 大数据量快速插入方法和语句性能优化
  • 如何定位,排除和避免MySQL数据库性能问题
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn