致命错误:调用未定义的方法PDO::close()


Fatal error: Call to undefined method PDO::close()

我得到了这个错误,行是这样的:

public function __destruct() {
        $this->db->close();
    }

我使用PDO,这是问题,PDO驱动程序不识别此功能吗?如果是,它在PDO中的等效是什么?

通过销毁其对象来关闭PDO连接:

连接在该PDO对象的生命周期内保持活动状态。要关闭连接,需要通过确保删除对该对象的所有剩余引用来销毁该对象——通过将持有该对象的变量赋值为NULL来实现这一点。如果你没有显式地这样做,PHP会在脚本结束时自动关闭连接。

$this->db = null;

PDO没有显式的"close"函数。您可以简单地执行

$this->db = null

来销毁对象,这将自动清理连接。

把手柄放到null

从php.net

:

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// use the connection here
// and now we're done; close it
$dbh = null;
?>

将PDO变量设置为null将关闭连接并释放所有相关内存。

另一种方法是使用closeCursor关闭与服务器的连接,但保留PDO对象。

" closecuror释放到服务器的连接,以便其他SQL语句可能会被发出,但会使语句处于以下状态使其能够再次执行。"

这意味着即使连接已被释放,也可以继续运行fetch()等操作。

与mysql_close()不同,但仍然非常有用。

PDO没有close方法。要取消PDO对象所表示的连接,请使用unset()取消对该对象本身的所有引用。

PDO没有关闭方法。我认为你可以尝试取消设置$this->db,这个自动断开