首頁 php框架 YII yii連接資料庫有幾種方法

yii連接資料庫有幾種方法

Dec 04, 2019 pm 01:18 PM
yii

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);
登入後複製
##Active Record

例如

$post=Post::model()->find(array( 
    'select'=>'title', 
    'condition'=>'postID=:postID', 
    'params'=>array(':postID'=>10), 
));
登入後複製

##Active Record

例如

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();
登入後複製

Criteria方式

也可以使用$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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

Symfony vs Yii2:哪個框架比較適合開發大型Web應用? Symfony vs Yii2:哪個框架比較適合開發大型Web應用? Jun 19, 2023 am 10:57 AM

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

如何使用PHP框架Yii開發一個高可用的雲端備份系統 如何使用PHP框架Yii開發一個高可用的雲端備份系統 Jun 27, 2023 am 09:04 AM

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

Yii框架中的資料查詢:有效率地存取數據 Yii框架中的資料查詢:有效率地存取數據 Jun 21, 2023 am 11:22 AM

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

Yii2 vs Phalcon:哪個框架更適合開發顯示卡渲染應用? Yii2 vs Phalcon:哪個框架更適合開發顯示卡渲染應用? Jun 19, 2023 am 08:09 AM

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

php如何使用Yii3框架? php如何使用Yii3框架? May 31, 2023 pm 10:42 PM

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

Yii2程式設計指南:執行Cron服務的方法 Yii2程式設計指南:執行Cron服務的方法 Sep 01, 2023 pm 11:21 PM

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

PHP開發:使用 Yii2 和 GrapeJS 實作後台 CMS 和 前端視覺化編輯 PHP開發:使用 Yii2 和 GrapeJS 實作後台 CMS 和 前端視覺化編輯 Jun 15, 2023 pm 11:48 PM

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

yii如何將物件轉換為陣列或直接輸出為json格式 yii如何將物件轉換為陣列或直接輸出為json格式 Jan 08, 2021 am 10:13 AM

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

See all articles