Medoo Datenbank
webman/medoo erweitert die Funktionen von Medoo um eine Verbindungspool-Funktion und unterstützt sowohl Koroutinen- als auch Nicht-Koroutinen-Umgebungen. Die Verwendung ist identisch mit der von Medoo.
Hinweis
Dieses Handbuch ist für die webman v2 Version. Wenn Sie die webman v1 Version verwenden, konsultieren Sie bitte das Handbuch für v1 Version.
Installation
composer require webman/medoo
Medoo Datenbankkonfiguration
Der Speicherort der Konfigurationsdatei ist config/plugin/webman/medoo/database.php
.
Verwendung der Medoo Datenbank
<?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);
}
}
Hinweis
Medoo::get('user', '*', ['uid' => 1]);
ist äquivalent zu
Medoo::instance('default')->get('user', '*', ['uid' => 1]);
Medoo Mehrfache Datenbankkonfiguration
Konfiguration
Fügen Sie eine neue Konfiguration in config/plugin/webman/medoo/database.php
hinzu, der Schlüssel kann beliebig sein, hier verwenden wir 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' => [ // Verbindungspool-Konfiguration
'max_connections' => 5, // Maximale Anzahl von Verbindungen
'min_connections' => 1, // Minimale Anzahl von Verbindungen
'wait_timeout' => 60, // Maximale Wartezeit für das Abrufen einer Verbindung aus dem Verbindungspool, nach Timeout wird eine Ausnahme ausgelöst
'idle_timeout' => 3, // Maximale Leerlaufzeit von Verbindungen im Verbindungspool, nach Timeout wird geschlossen und zurückgegeben, bis die Verbindungsanzahl die min_connections erreicht
'heartbeat_interval' => 50, // Herzschlagüberwachungszeit für den Verbindungspool, in Sekunden, empfohlen unter 60 Sekunden
]
],
// Hier wurde eine Konfiguration für other hinzugefügt
'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,
],
],
];
Verwendung der Medoo Datenbank
$user = Medoo::instance('other')->get('user', '*', ['uid' => 1]);