站长资讯网
最全最丰富的资讯网站

PHP如何实现数据库连接池

PHP如何实现数据库连接池

PHP如何实现数据库连接池

首先定义一个类并声明一个属性作为连接池子;然后在构造方法中向池子进行填充连接实例;最后再定义一个取出方法和放回方法,取出时将连接池最后一个连接实例进行出栈并返回,放回时将连接实例压入连接池末栈即可。

实例代码:

<?php namespace DbConnect;  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教程》

赞(0)
分享到: 更多 (0)