0

我在 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);
    }
  }
}
4

1 回答 1

0

如果您希望它持久,请不要关闭连接。

于 2012-08-16T11:13:10.067 回答