PHP Fatal Error: вызов неопределенного метода

Я создал собственный обработчик сеанса для хранения сеансов на моем локальном db:

session_set_save_handler( array($this, "s_open"), array($this, "s_close"), array($this, "s_read"), array($this, "s_write"), array($this, "s_destroy"), array($this, "s_gc") ); 

Каждая функция работает отлично, за исключением случаев, когда я пытаюсь уничтожить сеанс, используя собственную функцию session_destroy() помощью моей пользовательской функции s_destroy() . Хотя он уничтожает запись сеанса в моем db, он выдает браузер на стороне клиента.

В моем журнале php появляется следующее сообщение об ошибке:

PHP Fatal Error: вызов неопределенной базы данных методов :: close () в … / session.php в строке 47

Вот логика моего метода s_close, который содержит строку, в которой появляется ошибка:

 public function s_close(){ // Close the database connection // If successful if($this->db->close()){ //error appears on this line // Return True return true; } // Return False return false; } 

Какая проблема?

ОБНОВИТЬ:

My $ db var является экземпляром моего класса базы данных, который использует API PDO. Вот разметка класса:

 class Database { private $host = "localhost"; private $port = "8889"; private $user = "admin"; private $pass = "admin10"; private $dbname = "items"; private $dbh; private $error; private $stmt; public function __construct(){ // Set DSN $dsn = 'mysql:host=' . $this->host . ';port=' . $this->port . ';dbname=' . $this->dbname; // Set options $options = array( PDO::ATTR_PERSISTENT => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ); // Create a new PDO instanace try{ $this->dbh = new PDO($dsn, $this->user, $this->pass, $options); } // Catch any errors catch(PDOException $e){ $this->error = $e->getMessage(); } } 

Теперь у меня нет функции под названием close () в этом классе, которая, вероятно, является причиной возникновения ошибки, однако, когда я добавляю функцию close () , она не удаляет строку сеанса в моем db, как это происходит без функции close () .

Вот логика моей функции s_destroy() :

 public function s_destroy($id){ // Set query $this->db->query('DELETE FROM session WHERE id = :id'); // Bind data $this->db->bind(':id', $id); // Attempt execution // If successful if($this->db->execute()){ // Return True return true; } // Return False return false; }