YII 資料庫查詢,YII資料庫
$userModel = User::Model(); $userModel->count(); $userModel->count($condition); $userModel->count($condition, $params); $userModel->countByAttributes($attributes); $userModel->countByAttributes($attributes, $condition); $userModel->countByAttributes($attributes, $condition, $params); $userModel->countBySql($sql); $userModel->countBySql($sql, $params); // $userModel = User::Model(); $userModel->find(); $userModel->find($condition); $userModel->find($condition, $params); $userModel->findByPk($pk); $userModel->findByPk($pk, $condition); $userModel->findByPk($pk, $condition, $params); $userModel->findByAttributes($attributes); $userModel->findByAttributes($attributes, $userModel); $userModel->findByAttributes($attributes, $userModel, $params); $userModel->findBySql($sql); $userModel->findBySql($sql, $params); //傳回值為對象數組,若為空白則返回NULL,為一條記錄 $findResult = $userModel->find('islock = :islock and phone_status=:phone_status',array(':islock' => 1,':phone_status'=>1)); echo $findResult -> phone_status."<br />"; var_dump($findResult->attributes); if($userModel->find('user_id=260')){ echo 'find'; }else{ echo 'no find'; }
參數解釋:上面均返回一條記錄 如果要返回多條資料findALL類似的
$condition 是一般sql裡面where子句,一個字元竄
$params 是一個數組,為預留位置賦值
查詢出來所有資料:
$userinfo= $userModel->findAllByAttributes(array('islock'=>1,'phone_status' => 0)); foreach($userinfo as $k => $v){ echo $v->user_id." ". $userinfo[$k][user_id]."<br />"; }
可見,結果是一個二維數組。
講CDbcriteria和Model對象進行結合
$criteria = new CDbCriteria; if($condition) $criteria->condition = $condition; $criteria->offset = $offset; if($order) $criteria->order = $order; if($limit!="ALL") $criteria->limit = $limit; if(!empty($more_criteria)){ $criteria->mergeWith($more_criteria); } $Model = new $modelName; if(!empty($with_array)){ $result = $Model->with($with_array)->findAllByAttributes($attributes,$criteria); }else{ $result = $Model->findAllByAttributes($attributes,$criteria); }
用php yii架構寫尋找資料庫裡的資料
這個有兩種方法,一是將user模型與common模型做關係。
二是可以用DAO直接寫SQL去讀取。
yii資料庫查詢與資料輸出問題:現在有表a與b,需要查詢出a中x日發布的內容與b中x日發布的內容,然後輸出
select 發布內容 from a where x
union all
select 發布內容 from b where x