Yii 提供多種查詢介面,本文系統整理單筆、多筆、計數、存在性檢查及條件建構技巧。
// 依條件查第一筆 $post = Post::model()->find($condition, $params); // 依主鍵查詢 $post = Post::model()->findByPk($pk, $condition, $params); // 依屬性查詢 $post = Post::model()->findByAttributes($attributes, $condition, $params); // 依 SQL 查詢 $post = Post::model()->findBySql($sql, $params);
$posts = Post::model()->findAll($condition, $params); $posts = Post::model()->findAllByPk($pks, $condition, $params); $posts = Post::model()->findAllByAttributes($attributes, $condition, $params); $posts = Post::model()->findAllBySql($sql, $params);
$count = Post::model()->count($condition, $params); $count = Post::model()->countBySql($sql, $params); $exists = Post::model()->exists($condition, $params);
$post = Post::model()->find(array(
'select' => 'title',
'condition' => 'postID=:postID',
'params' => array(':postID' => 10),
));
$criteria = new CDbCriteria();
$criteria->select = 'title';
$criteria->condition = 'postID=:postID';
$criteria->params = array(':postID' => 10);
$post = Post::model()->find($criteria);
Post::model()->findByAttributes(array('title' => 'abc'));
Post::model()->updateAll($attributes, $condition, $params); Post::model()->updateByPk($pk, $attributes, $condition, $params); Post::model()->updateCounters($counters, $condition, $params); Post::model()->deleteAll($condition, $params); Post::model()->deleteByPk($pk, $condition, $params);
$transaction = Yii::app()->db->beginTransaction();
try {
$post = Post::model()->findByPk(10);
$post->title = 'New Title';
$post->save();
$transaction->commit();
} catch (Exception $e) {
$transaction->rollBack();
}