我目前正在建立这样的Oracle连接:
$c = oci_connect('username', 'password', 'host');
我使用我的oci8查询:
$s = oci_parse($this->c, $query);
oci_execute($s);
但是,每次我想查询时,我都会创建一个新连接,即我多次$c = ...
。这是一件很愚蠢的事情。在程序中的任何位置建立单个Oracle连接并使用该连接的正确或最佳方法是什么?我可以使$c
I全局变量,但全局变量并不好。
非常感谢:)。
答案 0 :(得分:1)
也许您应该使用oci_pconnect,因为它会创建持久连接。 php manual oci_pconnect
另一种方法是使用单例模式,不鼓励因为你无法对它进行单元测试。
答案 1 :(得分:0)
你不能使用静态变量,就像这样......
class DbHandler {
private static $_mOciHandle;
private function __construct() {}
GetHandle ($u, $p, $dsn, $charset) {
if (!isset(self::$_mOciHandle))
self::$_mOciHandle = oci_connect ($u, $p, $dsn, $charset);
return self::$_mOciHandle;
}
}
它仍然使您的数据库处理(间接)全局,但您只有一个连接,这样它就可以防止"意外"更新