1. 程式人生 > >yii框架中findall方法取資料使用總結,包括select各種條件,where條件,order by條件,limit限制以及使用單純sql語句query時佔位符的使用等

yii框架中findall方法取資料使用總結,包括select各種條件,where條件,order by條件,limit限制以及使用單純sql語句query時佔位符的使用等

在yii框架中可以使用對映類的find方法取出一條資料或者用findall方法取出數條資料來,那麼如何按照所需條件來取資料呢,主要用到了CDbCriteria這個類,這個類是yii自帶的操作資料庫的支援類,可以作為引數傳遞給find等方法,這裡用findall做個例子:

比如我要取出videoinfo表中的'v_id','title','big_class','sub_class','upload_time','comment_num' 等欄位,且條件是status=1的,按照lastmodifytime倒序,且只取出3條即可,這樣操作:

        $criteria = new CDbCriteria() ;
        $criteria -> select = array('v_id','title','big_class','sub_class','upload_time','comment_num');        
        $criteria -> condition = 'status = :status';
        $criteria -> order = 'lastmodifytime desc';
        $criteria -> limit = 3;
//        $criteria ->params = array (':status' => $你的變數) ;
        $result = VideoInfo::model()->findAll($criteria);

其中我註釋掉的那一行是可以傳變數的,用佔位符表示,比如你的status需要按照變數來條件賦值的話,可以在註釋的那行賦值,然後在condition條件寫成
        $criteria -> condition = 'status = :status';
即可,

這樣,$result變數時你取得的結果,它是個物件列表,需要遍歷一下:

foreach ($result as $ob){
           print_r($ob->attributes);
 }

比如你想展示每個欄位只需打出
$ob->attributes['title'];
等等即可

另外,CPagination類可以和CDbCriteria類以及前臺的分頁外掛一起用來支援分頁:

            $count =VideoInfo::model()->count($criteria)

            $pages=new CPagination($count);        
            $pages->pageSize=30;  //每頁分多少條
            $pages->applyLimit($criteria); 

      $result = VideoInfo::model()->findAll($criteria);

更多CDbCriteria類方法,詳見文件:

http://www.php100.com/manual/yii/CDbCriteria.html

如果有些朋友習慣了手寫sql語句,但又擔心注入攻擊需要佔位符來保護變數時可使用如下方法:

 $db = Yii::app()->db;
$sql = "select v_id,title,big_class,sub_class,upload_time,comment_num from videoinfo where status=:status and userid = :userid order by lastmodifytime desc limit 3"
$command = $db->createCommand($sql);

$command->params = array(':status'=>'1',':userid' => 115);

$result = $command->queryAll();


相關推薦

yii框架findall方法資料使用總結包括select各種條件where條件order by條件limit限制以及使用單純sql語句query佔位的使用

在yii框架中可以使用對映類的find方法取出一條資料或者用findall方法取出數條資料來,那麼如何按照所需條件來取資料呢,主要用到了CDbCriteria這個類,這個類是yii自帶的操作資料庫的支援類,可以作為引數傳遞給find等方法,這裡用findall做個例子:

yii框架findall方法資料使用總結包括select各種條件where條件order by條件limit限制

在yii框架中可以使用對映類的find方法取出一條資料或者用findall方法取出數條資料來,那麼如何按照所需條件來取資料呢,主要用到了CDbCriteria這個類,這個類是yii自帶的操作資料庫的支援類,可以作為引數傳遞給find等方法,這裡用findall做個例子

node+express框架連線使用mysql經驗總結

最近在學習node.js,做了一個練手專案,使用node.js+express框架,配合mysql資料庫和前端vue框架開發一個多人文件編輯系統。 node.js環境下express+mysql的服務端專案示例 首先是環境搭建: node環境下 $ npm install -g express-gen

vue專案jsonp抓資料實現方式

先安裝依賴:cnpm install --save jsonp 程式碼如下: 1. 然後建立一個jsonp.js import originJSONP from 'jsonp'   //引用jsonp   export default function jsonp(url,data,opt

使用sklearn方法進行資料劃分

train_test_split的引數 test_size : float, int, None, optional     If float, should be between 0.0 and 1.0 and represent the proportion &

TP框架D方法與M方法的區別

D()和M()方法的區別: D和M的區別主要在於 M方法不需要建立模型類檔案,M方法不會讀取模型類,所以預設情況下自動驗證是無效的,但是可以通過動態賦值的方式實現 而D方法必須有建立模型類。 我們可以用下面兩種方法去建立一個數據表的對映物件 第一種:$Test = D(‘Test

Yii框架MVC設計模式

MVC是模型(Model)、檢視(View)、控制器(Controller)3個單詞的縮寫。 Model是指資料模型,是對客觀事物的抽象。 如一篇部落格文章,我們可能會以一個Post類來表示,那麼,這個Post類就是資料物件。 同時,部落格文章還有一些業務邏輯,如釋出、回收、評論

spring框架工廠方法的建立和銷燬

1.編寫介面UserSerivce: public interface UserService { public void sayHello(); } 2.編寫實實現介面的方法,在該方法中除了要實現介面中的方法,還定義了inti和destory方法: public class

spring框架工廠方法的創建和銷毀

color this alt ima 實現 close col out err 1.編寫接口UserSerivce: public interface UserService { public void sayHello(); } 2.編寫實實現接口的方法,在

spark streaming direct 直連方式從kafka怎麼拉資料

我們知道 SparkStreaming 用 Direct 的方式拉取 Kafka 資料時,是根據 kafka 中的 fromOffsets 和 untilOffsets 來進行獲取資料的,而 fromOffsets 一般都是需要我們自己管理的,而每批次的 untilOffse

Struts2_day03---OGNL、值棧存、資料

一、OGNL(Object-Graph Navigation Language) OGNL是一種功能更加強的表示式語言。 理解:類似於EL表示式。EL應用在jsp中,OGNL多用在struts2中。

Spring Data Redis框架opsForValue()方法的使用

1、Spring Data Redis框架中opsForValue()方法的使用。 /** * 根據ID查詢實體 * @param id * @return */ public Article findById(String id) { //從快取中,查詢當前物件 A

YII框架的srbac許可權管理模組的安全與使用(版本是1.1.20)

0x01 前言 srbac的原理: YII框架的srbac模組是一個專門管理許可權的一個模組,那它是怎麼管理許可權的呢。我們知道YII框架的網頁顯示是由控制器實現的,控制器繼承父類CController和Controller,每個控制器中又有許多方法,就是以action開頭

yii框架省市三級聯動

檢視層 <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>省市三級聯動</title> <

詳解Python的Django框架Manager方法的使用

在語句Book.objects.all()中,objects是一個特殊的屬性,需要通過它查詢資料庫。 在第5章,我們只是簡要地說這是模組的manager 。現在是時候深入瞭解managers是什麼和如何使用了。 總之,模組manager是一個物件,Django模組通過它

yii框架搜尋的表單和後臺執行以及分頁

/**      * 管理員搜尋檢視那些課程      * 分頁顯示        * 多條件搜尋      *        */     public function actionSearch(){       //接搜尋傳過來的值       $data=yii::$app->request-&

laraver框架給模板分配資料

(一)給模板分配資料            (1)在控制器中給模板分配資料                     return view('firstclass.index',['name'=>'Alice','number'=>123]);         

JFinal框架方法

獲取到連線傳入的型別(get,post)  String  type = getRequest().getMethod();獲取到連線的IP地址  String ipurl = getRequest().getServerName();

Laravel5框架使用PHPExcel詳細步驟總結

參考Laravel-excel官網:http://www.maatwebsite.nl/laravel-excel/docs/getting-started第一步:框架要求滿足相應基礎條件laravel版本5.+第二步:執行如下命令安裝依賴及擴充套件:composer req

ThinkPHP框架快捷方法M和D的區別

D方式在例項的時候會呼叫Model類,M方法不會去呼叫Model類!一般如果是新增,修改的時候會使用到D方法,因為自動驗證,自動新增等功能需要使用到D方法而如果只是普通查詢,刪除等,直接使用M方法就行