首页 > 代码库 > yii 数据库 Active Record
yii 数据库 Active Record
// 查找满足指定条件的结果中的第一行 $post=Post::model()->find($condition,$params); // 查找具有指定主键值的那一行 $post=Post::model()->findByPk($postID,$condition,$params); // 查找具有指定属性值的行 $post=Post::model()->findByAttributes($attributes,$condition,$params); // 通过指定的 SQL 语句查找结果中的第一行 $post=Post::model()->findBySql($sql,$params);
$criteria=new CDbCriteria; $criteria->select=‘title‘; // 只选择 ‘title‘ 列 $criteria->condition=‘postID=:postID‘; $criteria->params=array(‘:postID‘=>10); $post=Post::model()->find($criteria); // $params 不需要了
$post=Post::model()->find(array( ‘select‘=>‘title‘, ‘condition‘=>‘postID=:postID‘, ‘params‘=>array(‘:postID‘=>10), ));
信息: 当一个查询条件是关于按指定的值匹配几个列时,我们可以使用 findByAttributes()。我们使
$attributes
参数是一个以列名做索引的值的数组。在一些框架中,此任务可以通过调用类似findByNameAndTitle
的方法实现。虽然此方法看起来很诱人, 但它常常引起混淆,冲突和比如列名大小写敏感的问题。
当有多行数据匹配指定的查询条件时,我们可以通过下面的 findAll
方法将他们全部带回。 每个都有其各自的 find
方法,就像我们已经讲过的那样。
// 查找满足指定条件的所有行 $posts=Post::model()->findAll($condition,$params); // 查找带有指定主键的所有行 $posts=Post::model()->findAllByPk($postIDs,$condition,$params); // 查找带有指定属性值的所有行 $posts=Post::model()->findAllByAttributes($attributes,$condition,$params); // 通过指定的SQL语句查找所有行 $posts=Post::model()->findAllBySql($sql,$params);
如果没有任何东西符合查询条件,findAll
将返回一个空数组。这跟 find
不同,find
会在没有找到什么东西时返回 null。
除了上面讲述的find
和findAll
方法,为了方便,(Yii)还提供了如下方法:
// 获取满足指定条件的行数 $n=Post::model()->count($condition,$params); // 通过指定的 SQL 获取结果行数 $n=Post::model()->countBySql($sql,$params); // 检查是否至少有一行复合指定的条件 $exists=Post::model()->exists($condition,$params);
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。