我试图在对象的属性中保持打开的 pgsql 数据库连接。
数据库连接作为构造函数的参数传递给对象并保存在属性中。稍后调用需要数据库连接的类的函数,并从属性中读取。但是,它以某种方式不被读取为有效的数据库连接。
我检查了对象外部的数据库连接,在调用类中的函数后,它仍然在那里打开。
为什么资源似乎在对象中关闭,有什么办法可以让它保持打开状态?
代码示例:
public class test{
public function __construct($db_conn){
$this->db_conn = $db_conn;
var_dump($this->db_conn); // this returns resource(4) of type (pgsql link)
}
public function testDBConn(){
var_dump($this->db_conn); //this returns resource(4) of type (Unknown)
$result = pg_query($this->db_conn, 'SELECT * FROM tbl_test');
}
}
更新:我使用的类实际上扩展了另一个类。如果我尝试通过引用设置属性,这会导致“PHP 致命错误:无法通过引用分配给重载对象”错误。如果我的类没有扩展另一个类,那么通过引用设置属性的方法效果很好。
有没有办法让它在重载的类中工作?