欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ThinkPHP數(shù)據(jù)庫操作之存儲過程、數(shù)據(jù)集、分布式數(shù)據(jù)庫的示例分析-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關ThinkPHP數(shù)據(jù)庫操作之存儲過程、數(shù)據(jù)集、分布式數(shù)據(jù)庫的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比道縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式道縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋道縣地區(qū)。費用合理售后完善,十年實體公司更值得信賴。

存儲過程

5.0支持存儲過程,如果我們定義了一個數(shù)據(jù)庫存儲過程 sp_query ,可以使用下面的方式調(diào)用:

$result = Db::query('call sp_query(8)');

返回的是一個二維數(shù)組,也可以使用參數(shù)綁定,例如:

$result = Db::query('call sp_query(?)',[8]);
// 或者命名綁定$result = Db::query('call sp_query(:id)',['id'=>8]);

數(shù)據(jù)集

數(shù)據(jù)庫的查詢結(jié)果也就是數(shù)據(jù)集,默認的配置下,數(shù)據(jù)集的類型是一個二維數(shù)組,我們可以配置成數(shù)據(jù)集類,就可以支持對數(shù)據(jù)集更多的對象化操作,需要使用數(shù)據(jù)集類功能,可以配置數(shù)據(jù)庫的resultset_type 參數(shù)如下:

return [    // 數(shù)據(jù)庫類型
    'type' => 'mysql',    // 數(shù)據(jù)庫連接DSN配置
    'dsn' => '',    // 服務器地址
    'hostname' => '127.0.0.1',    // 數(shù)據(jù)庫名
    'database' => 'thinkphp',    // 數(shù)據(jù)庫用戶名
    'username' => 'root',    // 數(shù)據(jù)庫密碼
    'password' => '',    // 數(shù)據(jù)庫連接端口
    'hostport' => '',    // 數(shù)據(jù)庫連接參數(shù)
    'params' => [],    // 數(shù)據(jù)庫編碼默認采用utf8
    'charset' => 'utf8',    // 數(shù)據(jù)庫表前綴
    'prefix' => 'think_',    // 數(shù)據(jù)集返回類型
    'resultset_type' => 'collection',];

返回的數(shù)據(jù)集對象是 think\Collection ,提供了和數(shù)組無差別用法,并且另外封裝了一些額外的方法。可以直接使用數(shù)組的方式操作數(shù)據(jù)集對象,例如:

// 獲取數(shù)據(jù)集
$users = Db::name('user')->select();
// 直接操作第一個元素
$item = $users[0];
// 獲取數(shù)據(jù)集記錄數(shù)
$count = count($users);
// 遍歷數(shù)據(jù)集
foreach($users as $user){    echo $user['name'];    echo $user['id'];
}

需要注意的是,如果要判斷數(shù)據(jù)集是否為空,不能直接使用 empty 判斷,而必須使用數(shù)據(jù)集對象的isEmpty 方法判斷,例如:

$users = Db::name('user')->select();if($users->isEmpty()){    echo '數(shù)據(jù)集為空';
}

Collection 類包含了下列主要方法:

ThinkPHP數(shù)據(jù)庫操作之存儲過程、數(shù)據(jù)集、分布式數(shù)據(jù)庫的示例分析

如果只是個別數(shù)據(jù)的查詢需要返回數(shù)據(jù)集對象,則可以使用

Db::name('user')    ->fetchClass('\think\Collection')    ->select();

分布式數(shù)據(jù)庫

ThinkPHP內(nèi)置了分布式數(shù)據(jù)庫的支持,包括主從式數(shù)據(jù)庫的讀寫分離,但是分布式數(shù)據(jù)庫必須是相同的數(shù)據(jù)庫類型。

配置 database.deploy 為1 可以采用分布式數(shù)據(jù)庫支持。如果采用分布式數(shù)據(jù)庫,定義數(shù)據(jù)庫配置信息的方式如下:

//分布式數(shù)據(jù)庫配置定義
return [    
// 啟用分布式數(shù)據(jù)庫
    'deploy' => 1,    // 數(shù)據(jù)庫類型
    'type' => 'mysql',    // 服務器地址
    'hostname' => '192.168.1.1,192.168.1.2',    // 數(shù)據(jù)庫名
    'database' => 'demo',    // 數(shù)據(jù)庫用戶名
    'username' => 'root',    // 數(shù)據(jù)庫密碼
    'password' => '',    // 數(shù)據(jù)庫連接端口
    'hostport' => '',]

連接的數(shù)據(jù)庫個數(shù)取決于 hostname 定義的數(shù)量,所以即使是兩個相同的IP也需要重復定義,但是其他的參數(shù)如果存在相同的可以不用重復定義,例如:

'hostport'=>'3306,3306'

'hostport'=>'3306'

等效。

'username'=>'user1',
'password'=>'pwd1',

'username'=>'user1,user1',
'password'=>'pwd1,pwd1',

等效。

還可以設置分布式數(shù)據(jù)庫的讀寫是否分離,默認的情況下讀寫不分離,也就是每臺服務器都可以進行讀寫操作,對于主從式數(shù)據(jù)庫而言,需要設置讀寫分離,通過下面的設置就可以:

'rw_separate' => true,

在讀寫分離的情況下,默認第一個數(shù)據(jù)庫配置是主服務器的配置信息,負責寫入數(shù)據(jù),如果設置了 master_num參數(shù),則可以支持多個主服務器寫入。其它的都是從數(shù)據(jù)庫的配置信息,負責讀取數(shù)據(jù),數(shù)量不限制。每次連接從服務器并且進行讀取操作的時候,系統(tǒng)會隨機進行在從服務器中選擇。

還可以設置 slave_no 指定某個服務器進行讀操作。

如果從數(shù)據(jù)庫連接錯誤,會自動切換到主數(shù)據(jù)庫連接。

調(diào)用模型的CURD操作的話,系統(tǒng)會自動判斷當前執(zhí)行的方法的讀操作還是寫操作,如果你用的是原生SQL,那么需要注意系統(tǒng)的默認規(guī)則:寫操作必須用模型的execute方法,讀操作必須用模型的query方法,否則會發(fā)生主從讀寫錯亂的情況。

注意:主從數(shù)據(jù)庫的數(shù)據(jù)同步工作不在框架實現(xiàn),需要數(shù)據(jù)庫考慮自身的同步或者復制機制。

感謝各位的閱讀!關于“ThinkPHP數(shù)據(jù)庫操作之存儲過程、數(shù)據(jù)集、分布式數(shù)據(jù)庫的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

文章題目:ThinkPHP數(shù)據(jù)庫操作之存儲過程、數(shù)據(jù)集、分布式數(shù)據(jù)庫的示例分析-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article20/pssco.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管網(wǎng)站策劃、域名注冊外貿(mào)建站、ChatGPT、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
99久久免费看国产精品| 日本理论片午夜在线观看| 久久99精品日韩人妻| 91香蕉国产观看免费人人| 国产伦精品一区二区三区精品视频 | 久久精品亚洲精品国产欧美| 欧美日韩亚洲精品内裤| 欧美人妻免费一区二区三区| 殴美女美女大码性淫生活在线播放| 亚洲中文字幕高清乱码毛片| 在线中文字幕亚洲欧美一区| 国产又黄又爽又粗视频在线| 国产成人在线一区二区三区| 国产精品久久香蕉国产线| 亚洲免费黄色高清在线观看| 国产情侣激情在线对白| 亚洲精品中文字幕一二三| 国产免费一区二区三区av大片| 亚洲国产精品一区二区毛片| 亚洲精品av少妇在线观看| 午夜国产精品国自产拍av| 精品人妻av区波多野结依| 国产精品一区二区有码| 国内真实露脸偷拍视频| 国产精品不卡一区二区三区四区| 日韩中文高清在线专区| 欧美野外在线刺激在线观看| 国产视频在线一区二区| 国产亚洲欧美日韩国亚语| 国产精品内射婷婷一级二级| 亚洲中文字幕在线观看四区| 国产综合欧美日韩在线精品 | 国产欧美韩日一区二区三区| 精品久久av一二三区| 五月激情婷婷丁香六月网| 国产精品熟女乱色一区二区| 污污黄黄的成年亚洲毛片| 亚洲国产精品久久琪琪| 日韩欧美综合中文字幕| 午夜福利视频日本一区| 日本深夜福利在线播放|