数据库没有读取当前会话

I have the following code and database table that at one point worked perfect together. If a user was on my site, the database would show those users.

I have the session class conjoint with an ini file that I require on every page of my site, so the session is always running.

I have the same code on another site of mine and this is where I brought the code over from, but one time a user was on it and it seems like the database table froze and up to this day, it still shows that user having a session, but if I go on it or anyone else, it doesn't show.

Does anyone see anything in the following that could be wrong?

CREATE TABLE `groups` (
 `id` int(11) NOT NULL,
 `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
 `permissions` text COLLATE utf8_unicode_ci NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Session class

class Session {
public static function exists($name) {
    return (isset($_SESSION[$name])) ? true : false;
}
public static function put($name, $value) {
    return $_SESSION[$name] = $value;
}
public static function get($name) {
    return $_SESSION[$name];
}
public static function delete($name) {
    if(self::exists($name)) {
        unset($_SESSION[$name]);
    }
}

public static function flash($name, $string = '') {
    if(self::exists($name)) {
        $session = self::get($name);
        self::delete($name);
        return $session;
    } else {
        self::put($name, $string);
    }
}
}

Here's part of my db class..

public function action($action, $table, $where = array()){
    if(count($where) === 3){
        $operators = array('=', '>', '<', '>=', '<=');

        $field      = $where[0];
        $operator   = $where[1];
        $value      = $where[2];

        if(in_array($operator, $operators)) {
            $sql = "{$action} FROM {$table} WHERE {$field} {$operator} ?";
            if(!$this->query($sql, array($value))->error()) {
                return $this;
            }
        }
    }
    return false;
}
public function get($table, $where){
    return $this->action('SELECT *', $table, $where);
}
public function delete($table, $where){
    return $this->action('DELETE', $table, $where);
}
public function insert($table, $fields = array()) {
    $keys = array_keys($fields);
    $values = '';
    $x = 1;

    foreach($fields as $field) {
        $values .= '?';
        if($x < count($fields)) {
            $values .= ', ';
        }
        $x++;
    }

    $sql = "INSERT INTO {$table} (`" . implode('`, `', $keys) . "`) Values ({$values})";

    return ! $this-> query($sql, $fields)->error(); 
}
public function update($table, $id, $fields) {
    $set = '';
    $x = 1;

    foreach($fields as $name => $value) {
        $set .= "{$name} = ?";
        if($x < count($fields)) {
            $set .= ', ';
        }
        $x++;
    }

    $sql = "UPDATE {$table} SET {$set} WHERE id = {$id}";

    return ! $this-> query($sql, $fields)->error();
}
public function results() {
    return $this->_results;
}
public function first() {
    return $this->results()[0];
}
public function error() {
    return $this->_error;
}
public function errorMessage() { 
    return $this->_errmsg; 
}
public function count(){
    return $this->_count;
}

}