YII框架學(xué)習(xí) 第五天(2) yii 查找數(shù)據(jù)擴展 數(shù)據(jù)模型criteria(條件)
AR(CActiveRecord)活躍記錄
?
find() 查詢一個信息
findByPk 根據(jù)主鍵查詢信息
findBySql根據(jù)sql語句查詢信息
findAll()查詢?nèi)啃畔?/p>
findAllByPk 根據(jù)主鍵查詢?nèi)啃畔?/p>
findAllBySql根據(jù)sql語句查詢?nèi)啃畔?/p>
?
findBySql 和findAllBySql
根據(jù)sql語句查詢信息,前者會查詢一條記錄信息,后者會查詢條記錄信息
前者給返回一個數(shù)據(jù)模型對象,后者以數(shù)組形式給我們返回多個數(shù)據(jù)模型對象
select? * ?from?goods? limit 10
?
findByPk 和findAllByPk?
都是根據(jù)主鍵進(jìn)行信息的查詢
前者每次只可以傳遞一個主鍵信息,后者可以傳遞一個也傳遞多個
后者傳遞參數(shù),如果是多個主鍵信息,需要以數(shù)組形式給我們傳遞。
?
?
?
?
select?condition?? order?? limit??offset 都是從哪來的。
?
我們使用findAll() 該方法是數(shù)據(jù)模型給我們封裝好的方法,可以獲得全部數(shù)據(jù)
findAll()是CactiveRecord這個類的成員方法。AR是對數(shù)據(jù)庫向上的封裝,AR通過OOP面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫。AR需要最終轉(zhuǎn)變?yōu)榫唧w的sql語句,通過一個中間類(criteria標(biāo)準(zhǔn))協(xié)助轉(zhuǎn)為的具體sql語句,上邊的關(guān)鍵字就是這個中間類criteria的一些屬性。
?
?
注意:
$goodsInfo?=?$goods->findAll("goods_name?like?'諾%'");
字符串的 ' ?'?
$goodsInfo?=?$goods->findAll("goods_name?like?:name?and?goods_price?>?:price",array('name'=>'諾%','price'=>2000));