Medoo 數(shù)據(jù)庫
webman/medoo在Medoo的基礎(chǔ)上增加了連接池功能,并支持協(xié)程和非協(xié)程環(huán)境,用法與Medoo相同。
注意
當前手冊為 webman v2 版本,如果您使用的是webman v1版本,請查看 v1版本手冊
安裝
composer require webman/medoo
Medoo數(shù)據(jù)庫配置
配置文件位置在 config/plugin/webman/medoo/database.php
Medoo數(shù)據(jù)庫使用
<?php
namespace app\controller;
use support\Request;
use support\Medoo;
class Index
{
public function index(Request $request)
{
$user = Medoo::get('user', '*', ['uid' => 1]);
return json($user);
}
}
提示
Medoo::get('user', '*', ['uid' => 1]);
等同于
Medoo::instance('default')->get('user', '*', ['uid' => 1]);
Medoo多數(shù)據(jù)庫配置
配置
config/plugin/webman/medoo/database.php
里新增一個配置,key任意,這里使用的是other
。
<?php
return [
'default' => [
'type' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'port' => 3306,
'prefix' => '',
'logging' => false,
'error' => PDO::ERRMODE_EXCEPTION,
'option' => [
PDO::ATTR_CASE => PDO::CASE_NATURAL
],
'command' => [
'SET SQL_MODE=ANSI_QUOTES'
],
'pool' => [ // 連接池配置
'max_connections' => 5, // 最大連接數(shù)
'min_connections' => 1, // 最小連接數(shù)
'wait_timeout' => 60, // 從連接池獲取連接等待的最大時間,超時后會拋出異常
'idle_timeout' => 3, // 連接池中連接最大空閑時間,超時后會關(guān)閉回收,直到連接數(shù)為min_connections
'heartbeat_interval' => 50, // 連接池心跳檢測時間,單位秒,建議小于60秒
]
],
// 這里新增了一個other的配置
'other' => [
'type' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'port' => 3306,
'prefix' => '',
'logging' => false,
'error' => PDO::ERRMODE_EXCEPTION,
'option' => [
PDO::ATTR_CASE => PDO::CASE_NATURAL
],
'command' => [
'SET SQL_MODE=ANSI_QUOTES'
],
'pool' => [
'max_connections' => 5,
'min_connections' => 1,
'wait_timeout' => 60,
'idle_timeout' => 3,
'heartbeat_interval' => 50,
],
],
];
Medoo數(shù)據(jù)庫使用
$user = Medoo::instance('other')->get('user', '*', ['uid' => 1]);
參見 Medoo官方文檔