Неустранимая ошибка: вызов неопределенного метода PDO :: close ()

У меня есть эта ошибка, и строка была такой:

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

Я использую PDO, это проблема, не знает ли драйвер PDO эту функцию? Если да, то каков его эквивалент в PDO?

Соединение PDO закрывается путем уничтожения его объекта:

Соединение остается активным для времени жизни этого объекта PDO. Чтобы закрыть соединение, вам нужно уничтожить объект, убедившись, что все остальные ссылки на него удалены – вы делаете это, назначая NULL переменной, которая содержит объект. Если вы не сделаете это явно, PHP автоматически закроет соединение, когда ваш скрипт закончится.

так

 $this->db = null; 

должно сработать.

Установка переменной PDO в нуль закрывает соединение и освобождает всю связанную память.

Альтернативой является использование closeCursor для закрытия соединения с сервером, но оставить объект PDO вокруг.

« closeCursor освобождает соединение с сервером, так что могут выдаваться другие операторы SQL, но оставляет оператор в состоянии, которое позволяет ему снова запускаться ».

Это означает, что вы можете продолжить запуск fetch () и др., Хотя соединение было освобождено.

Опять же, не то же самое, что mysql_close (), но тем не менее невероятно полезно.

PDO не имеет явной «закрытой» функции. Вы можете просто сделать

 $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 не имеет близкого метода. Чтобы уничтожить соединение, которое представляет объект PDO, уничтожьте все ссылки на сам объект unset ().

PDO не имеет метода закрытия. я думаю, вы можете попытаться отключить $ this-> db, это автоматически отключается