首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Yii Model 查詢大全:find、findAll、CDbCriteria 與陣列條件完整範例

     編輯:PHP 綜合知識

Active Record 查詢方法完整對照表

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),
));

CDbCriteria 物件

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

findByAttributes 範例

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();
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved