亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

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

yii連接資料庫有幾種方法

Dec 04, 2019 pm 01:18 PM
yii

yii連接資料庫有幾種方法

PDO方式(適合多表連接查詢)。 ? ? ? ? ? ? ? ? ? (建議學(xué)習(xí):yii架構(gòu)

$sql = "";//原生態(tài)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 成為一個(gè) CDbCriteria 的實(shí)例,它允許我們指定不限於 WHERE 的條件。 rrreee一種替代 CDbCriteria 的方法是給 find 方法傳遞一個(gè)陣列。數(shù)組的鍵和值各自對(duì)應(yīng)標(biāo)準(zhǔn)(criterion)的屬性名和值

上面的例子可以重寫為如下:

rrreee

當(dāng)一個(gè)查詢條件是關(guān)於按指定的值符合幾個(gè)列時(shí), 我們可以使用findByAttributes()。我們讓 $attributes 參數(shù)是一個(gè)以列名做索引的值的陣列。

在一些框架中, 此任務(wù)可以透過呼叫類似findByNameAndTitle的方法實(shí)作。

雖然此方法看起來很誘人, 但它常常引起混淆, 衝突 和例如列名大小寫敏感的問題。

Query Builder 方式

rrreee

一、在用好AcitveRecord的情況下,即不要讓其產(chǎn)生比較二的SQL查詢方式,我的經(jīng)驗(yàn),不必過分在意那點(diǎn)時(shí)間性能上的差別的。對(duì)於大數(shù)據(jù)查詢,記憶體空間上的話,在yii2中可以使用 toArray() 來節(jié)省記憶體消耗。

二、ActiveRecord之於PDO的優(yōu)點(diǎn)在於其方便。

一個(gè)是比起書寫SQL語句,用ActiveRecord要簡(jiǎn)單一點(diǎn),更重要的是不容易出錯(cuò)。

###二是提供了許多SQL語句以外的便利,例如參數(shù)過濾、綁定等等。這個(gè)web開發(fā)中你總是要遇到吧,一個(gè)SQL語句一個(gè)SQL語句的寫,程式碼重複使用程度不高不說,還容易某個(gè)地方忘記過濾了,形成安全隱患。 ######三、 Yii2中已經(jīng)有Query,效能上優(yōu)於ActiveRecord,可以當(dāng)作替代品。當(dāng)然,方便與效率是硬幣的兩面,其使用上不如ActiveRecord 方便。 ######但在專案中我的經(jīng)驗(yàn)是Query的使用頻率僅略少於ActiveRecord,個(gè)人認(rèn)為Query/ActiveQuery是Yii2中引入的一個(gè) 激動(dòng)人心的新feature。 ######四、前面幾條說的是ActiveRecord的應(yīng)用場(chǎng)景。對(duì)於PDO,如果要用的話, 應(yīng)該是對(duì)於比較複雜的SQL操作,例如一兩句話寫不清楚的。 ######這種情況下,使用ActiveRecord來構(gòu)建,其複雜程度不亞於直接寫SQL,那麼可以考 慮使用PDO。但我印像中,如果專案中使用的SQL語句很複雜,會(huì)被寫成DB的View或是預(yù)存過程,所以,感覺PDO使用不多,可以說是極少的。 ######五、追求更高效率的話,個(gè)人也不認(rèn)為應(yīng)該過度使用PDO,這對(duì)後期維護(hù)帶來極大的難度。倒是可以考慮最佳化SQL查詢,優(yōu)化索引和表格結(jié)構(gòu),使用快取等。值得一提的是,使用緩存,是最簡(jiǎn)單、直接,成效也最明顯的手段。 ######六、永遠(yuǎn)沒必要過早考慮效能問題###

以上是yii連接資料庫有幾種方法的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

Yii2 vs Phalcon:哪個(gè)框架更適合開發(fā)顯示卡渲染應(yīng)用? Yii2 vs Phalcon:哪個(gè)框架更適合開發(fā)顯示卡渲染應(yīng)用? Jun 19, 2023 am 08:09 AM

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

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

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

Symfony vs Yii2:哪個(gè)框架比較適合開發(fā)大型Web應(yīng)用? Symfony vs Yii2:哪個(gè)框架比較適合開發(fā)大型Web應(yīng)用? Jun 19, 2023 am 10:57 AM

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

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

隨著互聯(lián)網(wǎng)的不斷發(fā)展,Web應(yīng)用程式開發(fā)的需求也越來越高。對(duì)於開發(fā)人員而言,開發(fā)應(yīng)用程式需要一個(gè)穩(wěn)定、高效、強(qiáng)大的框架,這樣可以提高開發(fā)效率。 Yii是一款領(lǐng)先的高效能PHP框架,它提供了豐富的特性和良好的性能。 Yii3是Yii框架的下一代版本,它在Yii2的基礎(chǔ)上進(jìn)一步優(yōu)化了效能和程式碼品質(zhì)。在這篇文章中,我們將介紹如何使用Yii3框架來開發(fā)PHP應(yīng)用程式。

如何使用PHP框架Yii開發(fā)一個(gè)高可用的雲(yún)端備份系統(tǒng) 如何使用PHP框架Yii開發(fā)一個(gè)高可用的雲(yún)端備份系統(tǒng) Jun 27, 2023 am 09:04 AM

隨著雲(yún)端運(yùn)算技術(shù)的不斷發(fā)展,資料的備份已經(jīng)成為了每個(gè)企業(yè)必須要做的事情。在這樣的背景下,開發(fā)一款高可用的雲(yún)端備份系統(tǒng)尤其重要。而PHP框架Yii是一款功能強(qiáng)大的框架,可以幫助開發(fā)者快速建立高效能的Web應(yīng)用程式。以下將介紹如何使用Yii框架開發(fā)一款高可用的雲(yún)端備份系統(tǒng)。設(shè)計(jì)資料庫模型在Yii框架中,資料庫模型是非常重要的一環(huán)。因?yàn)橘Y料備份系統(tǒng)需要用到很多的表和關(guān)

php框架laravel和yii區(qū)別是什麼 php框架laravel和yii區(qū)別是什麼 Apr 30, 2025 pm 02:24 PM

Laravel和Yii的主要區(qū)別在於設(shè)計(jì)理念、功能特性和使用場(chǎng)景。 1.Laravel注重開發(fā)的簡(jiǎn)潔和愉悅,提供豐富的功能如EloquentORM和Artisan工具,適合快速開發(fā)和初學(xué)者。 2.Yii強(qiáng)調(diào)性能和效率,適用於高負(fù)載應(yīng)用,提供高效的ActiveRecord和緩存系統(tǒng),但學(xué)習(xí)曲線較陡。

yii與Docker:容器化和部署您的應(yīng)用程序 yii與Docker:容器化和部署您的應(yīng)用程序 Apr 02, 2025 pm 02:13 PM

使用Docker容器化和部署Yii應(yīng)用的步驟包括:1.創(chuàng)建Dockerfile,定義鏡像構(gòu)建過程;2.使用DockerCompose啟動(dòng)Yii應(yīng)用和MySQL數(shù)據(jù)庫;3.優(yōu)化鏡像大小和性能。這不僅涉及到具體的技術(shù)操作,還包括理解Dockerfile的工作原理和最佳實(shí)踐,以確保高效、可靠的部署。

Yii2 vs Symfony:哪個(gè)框架比較適合API開發(fā)? Yii2 vs Symfony:哪個(gè)框架比較適合API開發(fā)? Jun 18, 2023 pm 11:00 PM

隨著網(wǎng)路的快速發(fā)展,API成為了各種應(yīng)用間資料交換的重要方式。因此,開發(fā)一款易於維護(hù)、高效、穩(wěn)定的API框架變得越來越重要。而在選擇API框架時(shí),Yii2和Symfony是兩個(gè)備受開發(fā)者歡迎的選擇。那麼,哪一個(gè)比較適合API開發(fā)呢?本文將對(duì)這兩個(gè)框架進(jìn)行比較,並給出一些結(jié)論。一、基本介紹Yii2和Symfony都是成熟的PHP框架,都有相應(yīng)的擴(kuò)展,可以用來開

See all articles