Я пытаюсь изменить сценарий, который хранит мои данные сеанса в базе данных, а не по умолчанию, но у меня возникли некоторые проблемы, так как я продолжаю получать ошибку выше. Он говорит, что я получаю ошибку в строках 176 и 201.
Вот функция внутри класса sessionPdo
public function _write($id, $sessionData)
{
$session = $this->fetchSession($id); // line 176
if( $session === false ) {
$stmt = $this->db->prepare('INSERT INTO sessions (id, data, unixtime) VALUES (:id, :data, :time)');
} else {
$stmt = $this->db->prepare('UPDATE sessions SET data = :data, unixtime = :time WHERE id = :id');
}
$stmt->execute( array(
':id' => $id,
':data' => $sessionData,
':time' => time()
));
if( $this->transaction ) {
$this->db->commit();
}
}
А вот и метод fetchSession, если он помогает.
public function fetchSession($id)
{
$stmt = $this->db->prepare('SELECT id, data FROM sessions WHERE id = :id AND unixtime > :unixtime');
$stmt->execute( array(':id' => $id, ':unixtime' => ( time() - (int) ini_get('session.gc_maxlifetime') ) ) );
$sessions = $stmt->fetchAll();
if( $this->transaction ) {
$this->db->commit();
}
return empty($sessions) ? false : $sessions[0] ;
}
Я изо всех сил пытался выяснить, что я делаю неправильно, поскольку все решения, которые я нашел, заключаются в том, что программист пытался вызвать $ this извне класса. Я новичок в PDO, поэтому заранее благодарю за любую помощь, которую вы можете оказать.