日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

easyswoole数据库连接池_EasySwoole使用Mysqli

發布時間:2025/3/15 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 easyswoole数据库连接池_EasySwoole使用Mysqli 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EasySwoole使用Mysqli

羨仙.???2019 年 05 月 06 日

我為什么要寫這些東西呢!因為好多的文檔他并不是我所想的能復制粘貼就直接用了!還要改!有的地方寫的還不全.復制過來就報錯!!而我希望我之前學過的東西在以后用的時候能tm直接復制粘貼去使用它!減少我效率,并不是百分之百的樂于分享!只是筆記好多都是貼的圖.直接復制代碼不好看,嚶嚶嚶

好話不多說!首先來安裝mysqli類庫

安裝composer require easyswoole/mysqli

然后配置文件的參數官方文檔是這樣的/*################ MYSQL CONFIG ##################*/

'MYSQL' => [

'host' => '192.168.75.1',

'port' => '3306',

'user' => 'root',

'timeout' => '5',

'charset' => 'utf8mb4',

'password' => 'root',

'database' => 'cry',

'POOL_MAX_NUM' => '20',

'POOL_TIME_OUT' => '0.1',

],

而我的是這樣的.host = '127.0.0.1'

port = '3306'

user = 'root'

timeout = '5'

charset = 'utf8mb4'

password = 'root'

database = 'video'

POOL_MAX_NUM = '20'

POOL_TIME_OUT = '0.1'

配置文件這里我用的是Yaconf.配置的名字為mysql.ini

這個牛逼的東西日后會寫一篇(主要也是貼鏈接= =).現在先簡單的說一下獲取參數方法Yaconf::get('mysql').當然你不能直接用還需要安裝.現在先給你秀一秀我是怎么用的.

測試調用接口use EasySwoole\Mysqli\Mysqli;

use EasySwoole\Mysqli\Config as mysqlConfig;

public function test()

{

$conf = \Yaconf::get('mysql');

$mysqlConf = new mysqlConfig($conf);

$db = new Mysqli($mysqlConf);

$data = $db->get('video');

$this->writeJson(0, 'ok', $data);

}

運行結果

很簡單的就成功了嘛!不過注意看文檔!這里必須要點過去看下文檔哈!因為他是這么說的由于是協程狀態,每次請求進來都必須使用不同的實例,如果一個請求進來就new,完成請求邏輯就銷毀,每次都會創建連接,然后銷毀,這樣開銷會非常大,所以我們可以采用連接池方式,復用連接EasySwooleEvent.php的initialize方法中注冊連接池對象

PoolManager::getInstance()->register(MysqlPool::class,Config::getInstance()->getConf('MYSQL.POOL_MAX_NUM'));

注意:那是官方的.而我的是這樣的PoolManager::getInstance()->register(MysqlPool::class,\Yaconf::get('mysql.POOL_MAX_NUM'));

可以看到調用了MysqlPool我們發現有點點問題.至于啥問題你下載了自己和我的對比著看吧.如果你不用我的方式獲取配置那就沒有問題的哦~我只是適配我自己的

官方文檔中有寫好的鏈接池demo.直接下載來放到App/Utility/Pool.根據個人哈,不一定非要放到這,demo傳送門App\Utility\Pool\MysqlPool.php的createObject方法就行protected function createObject()

{

//當連接池第一次獲取連接時,會調用該方法

//我們需要在該方法中創建連接

//返回一個對象實例

//必須要返回一個實現了AbstractPoolObject接口的對象

$conf = \Yaconf::get('mysql');

$dbConf = new Config($conf);

return new MysqlObject($dbConf);

// TODO: Implement createObject() method.

}

然后你自己找文檔吧!不給鏈接的.通過剛才的那個鏈接也行

使用defer方法直接獲取一個連接池連接,直接使用,協程結束后自動回收:public function defert()

{

$db = MysqlPool::defer();

$data = $db->get('video');

$this->writeJson(0, 'ok', $data);

}

很明顯成功了嘛!也沒干什么嘛.官方還給了一堆的方法.有興趣可以自己嘗試哈

總結

以上是生活随笔為你收集整理的easyswoole数据库连接池_EasySwoole使用Mysqli的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。