我在 PHP 中编写了一个简单的 OCI 包装类,它使用持久连接 ( oci_pconnect
)。类析构函数调用oci_close
.
这个类用于我所有的 AJAX PHP 脚本,因此被大量调用。但是,尽管使用了持久连接并且oci_close
没有从缓存中删除它们(根据我的理解),但与数据库的打开连接数已达到最大值,导致系统失败。我期望打开的连接数只是整个应用程序的一个!
我在做一些明显错误的事情吗?
骨架代码:
class Oracle {
private $connection;
private $connected;
function __construct($connectionString, $username, $password) {
if (!($this->connection = @oci_pconnect($username, $password, $connectionString))) {
echo 'Cannot connect to '.$username.'@'.$connectionString;
$this->connected = false;
} else {
$this->connected = true;
}
}
function __destruct() {
if ($this->connected) {
oci_close($this->connection);
}
}
}