Wie implementiert PHP die Verbindungsinstanz und definiert beim Herausnehmen die letzte Verbindung? Die Instanz des Verbindungspools wird aus dem Stapel entfernt und zurückgegeben. Beim Zurücksetzen wird die Verbindungsinstanz auf den letzten Stapel des Verbindungspools verschoben.
Beispielcode:<?php namespace Db\Connect; class Pool { protected $size = 10; protected $connects = []; protected $dbConf = [ 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => '123456', 'dbname' => 'dbname' ]; public function __construct($size = 10, $dbConf = []) { $this->size = $size; $this->dbdbConf = array_merge($this->dbdbConf, $dbdbConf); for($index = 1; $index <= $this->size; $index ++) { $connect = mysqli_connect( $this->dbConf['hostname'], $this->dbConf['username'], $this->dbConf['password'], $this->dbConf['dbname'] ); array_push($this->connects, $connect); } } public function getConnect() { if (count($this->connects) <= 0) { throw new \ErrorException( "数据库连接池中已无链接资源,请稍后重试!" ); } else { return array_pop($this->connects); } } public function release($connect) { if (count($this->connects) >= $this->size) { throw new \ErrorException("数据库连接池已满"); } else { array_push($this->connects, $connect); } } }
PHP-Tutorial
“Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Datenbankverbindungspool in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!