yii連接資料庫有幾種方法
PDO方式(適合多表連接查詢)。 (建議學習:yii架構)
$sql = "";//原生态sql语句 xx::model()->dbConnection->createCommand($sql)->execute(); 非select语句(update、insert、delete) xx::model()->dbConnection->createCommand($sql)->queryRow(); 查询select一条记录 xx::model()->dbConnection->createCommand($sql)->queryAll(); 查询select多条记录 $sql = "select a.*, count(b.role_id)as num from {{user_role}} a left join {{user}} b on a.id = b.role_id group by b.role_id order by a.id"; $user_role_info = UserRole::model()->dbConnection->createCommand($sql)->queryAll(); $this->render("list", array('user_role_info'=>$user_role_info));
例如
$sql = "select a.*, count(b.role_id)as num from slgo_user_role a left join slgo_user b on a.id = b.role_id group by b.role_id order by a.id"; $user_role_info = UserRole::model()->dbConnection->createCommand($sql)->queryAll(); $this->render("list", array('user_role_info'=>$user_role_info));
##Active Record方法##例如
$post=new Post; $post->title='sample post'; $post->content='post body content'; $post->save();
##Active Record方法
##例如$criteria=new CDbCriteria;
$criteria->select='title'; // 只选择 'title' 列
$criteria->condition='postID=:postID';
$criteria->params=array(':postID'=>10);
$post=Post::model()->find($criteria);
例如
$post=Post::model()->find(array( 'select'=>'title', 'condition'=>'postID=:postID', 'params'=>array(':postID'=>10), ));
例如
rreee##! ##(1)New
$user = Yii::app()->db->createCommand() ->select('id, username, profile') ->from('tbl_user u') ->join('tbl_profile p', 'u.id=p.user_id') ->where('id=:id', array(':id'=>$id)) ->queryRow();
也可以使用$condition 指定更複雜的查詢條件。不使用字串, 我們可以讓 $condition 成為一個 CDbCriteria 的實例,它允許我們指定不限於 WHERE 的條件。 rrreee一種替代 CDbCriteria 的方法是給 find 方法傳遞一個陣列。數組的鍵和值各自對應標準(criterion)的屬性名和值
上面的例子可以重寫為如下:rrreee當一個查詢條件是關於按指定的值符合幾個列時, 我們可以使用findByAttributes()。我們讓 $attributes 參數是一個以列名做索引的值的陣列。
在一些框架中, 此任務可以透過呼叫類似findByNameAndTitle的方法實作。
雖然此方法看起來很誘人, 但它常常引起混淆, 衝突 和例如列名大小寫敏感的問題。
Query Builder 方式rrreee一、在用好AcitveRecord的情況下,即不要讓其產生比較二的SQL查詢方式,我的經驗,不必過分在意那點時間性能上的差別的。對於大數據查詢,記憶體空間上的話,在yii2中可以使用 toArray() 來節省記憶體消耗。
二、ActiveRecord之於PDO的優點在於其方便。
一個是比起書寫SQL語句,用ActiveRecord要簡單一點,更重要的是不容易出錯。
###二是提供了許多SQL語句以外的便利,例如參數過濾、綁定等等。這個web開發中你總是要遇到吧,一個SQL語句一個SQL語句的寫,程式碼重複使用程度不高不說,還容易某個地方忘記過濾了,形成安全隱患。 ######三、 Yii2中已經有Query,效能上優於ActiveRecord,可以當作替代品。當然,方便與效率是硬幣的兩面,其使用上不如ActiveRecord 方便。 ######但在專案中我的經驗是Query的使用頻率僅略少於ActiveRecord,個人認為Query/ActiveQuery是Yii2中引入的一個 激動人心的新feature。 ######四、前面幾條說的是ActiveRecord的應用場景。對於PDO,如果要用的話, 應該是對於比較複雜的SQL操作,例如一兩句話寫不清楚的。 ######這種情況下,使用ActiveRecord來構建,其複雜程度不亞於直接寫SQL,那麼可以考 慮使用PDO。但我印像中,如果專案中使用的SQL語句很複雜,會被寫成DB的View或是預存過程,所以,感覺PDO使用不多,可以說是極少的。 ######五、追求更高效率的話,個人也不認為應該過度使用PDO,這對後期維護帶來極大的難度。倒是可以考慮最佳化SQL查詢,優化索引和表格結構,使用快取等。值得一提的是,使用緩存,是最簡單、直接,成效也最明顯的手段。 ######六、永遠沒必要過早考慮效能問題###以上是yii連接資料庫有幾種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

隨著Web應用需求的不斷增長,開發者在選擇開發框架方面也越來越有選擇的空間。 Symfony和Yii2是兩個備受歡迎的PHP框架,它們都具有強大的功能和效能,但在面對需要開發大型網路應用程式時,哪個框架更適合呢?接下來我們將對Symphony和Yii2進行比較分析,以幫助你更好地進行選擇。基本概述Symphony是一個由PHP編寫的開源Web應用框架,它是建立

隨著雲端運算技術的不斷發展,資料的備份已經成為了每個企業必須要做的事情。在這樣的背景下,開發一款高可用的雲端備份系統尤其重要。而PHP框架Yii是一款功能強大的框架,可以幫助開發者快速建立高效能的Web應用程式。以下將介紹如何使用Yii框架開發一款高可用的雲端備份系統。設計資料庫模型在Yii框架中,資料庫模型是非常重要的一環。因為資料備份系統需要用到很多的表和關

Yii框架是一個開源的PHPWeb應用程式框架,提供了眾多的工具和元件,簡化了Web應用程式開發的流程,其中資料查詢是其中一個重要的元件之一。在Yii框架中,我們可以使用類似SQL的語法來存取資料庫,從而有效率地查詢和操作資料。 Yii框架的查詢建構器主要包括以下幾種類型:ActiveRecord查詢、QueryBuilder查詢、命令查詢和原始SQL查詢

在當前資訊時代,大數據、人工智慧、雲端運算等技術已成為了各大企業關注的熱點。在這些技術中,顯示卡渲染技術作為一種高效能圖形處理技術,受到了越來越多的關注。顯示卡渲染技術廣泛應用於遊戲開發、影視特效、工程建模等領域。而對於開發者來說,選擇一個適合自己專案的框架,是一個非常重要的決策。在目前的語言中,PHP是一種相當有活力的語言,一些優秀的PHP框架如Yii2、Ph

隨著互聯網的不斷發展,Web應用程式開發的需求也越來越高。對於開發人員而言,開發應用程式需要一個穩定、高效、強大的框架,這樣可以提高開發效率。 Yii是一款領先的高效能PHP框架,它提供了豐富的特性和良好的性能。 Yii3是Yii框架的下一代版本,它在Yii2的基礎上進一步優化了效能和程式碼品質。在這篇文章中,我們將介紹如何使用Yii3框架來開發PHP應用程式。

如果您問「Yii是什麼?」請參閱我之前的教學:Yii框架簡介,其中回顧了Yii的優點,並概述了2014年10月發布的Yii2.0的新增功能。嗯>在這個使用Yii2程式設計系列中,我將指導讀者使用Yii2PHP框架。在今天的教學中,我將與您分享如何利用Yii的控制台功能來執行cron作業。過去,我在cron作業中使用了wget—可透過Web存取的URL來執行我的後台任務。這引發了安全性問題並存在一些效能問題。雖然我在我們的啟動系列安全性專題中討論了一些減輕風險的方法,但我曾希望過渡到控制台驅動的命令

在現代軟體開發中,建立一個強大的內容管理系統(CMS)並不是一項容易的任務。不僅需要開發人員具備豐富的技能以及經驗,還需要使用最先進的技術和工具來使其功能與效能達到最佳化。本文介紹如何使用Yii2和GrapeJS,兩個流行的開源軟體來實現後台CMS和前端視覺化編輯。 Yii2是一個流行的PHPWeb框架,它提供了豐富的工具和元件來快速構

yii框架:本文為大家介紹了yii將物件轉換為陣列或直接輸出為json格式的方法,具有一定的參考價值,希望能幫助大家。
