namespace Think\Session\Driver;
class Db {
protected $lifeTime = '';
protected $sessionTable = '';
protected $hander = null;
public function open($savePath, $sessName) {
$this->lifeTime = C('SESSION_EXPIRE') ? C('SESSION_EXPIRE') : ini_get('session.gc_maxlifetime');
$this->sessionTable = C('SESSION_TABLE') ? C('SESSION_TABLE') : C("DB_PREFIX") . "session";
$this->hander = \Think\Db::getInstance();
return true;
}
public function close() {
$this->gc($this->lifeTime);
$this->hander->close();
return true;
}
public function read($sessID) {
$res = $this->hander->query("SELECT data FROM " . $this->sessionTable . " WHERE id = '$sessID' AND expire >" . time());
if ($res) {
return $res[0]['data'];
}
return '';
}
public function write($sessID, $sessData) {
$expire = time() + $this->lifeTime;
return $this->hander->execute("REPLACE INTO " . $this->sessionTable . " ( id, expire, data) VALUES( '$sessID', '$expire', '$sessData')") ? true : false;
}
public function destroy($sessID) {
return $this->hander->execute("DELETE FROM " . $this->sessionTable . " WHERE id = '$sessID'") ? true : false;
}
public function gc($sessMaxLifeTime) {
return $this->hander->execute("DELETE FROM " . $this->sessionTable . " WHERE expire < " . time()) ? true : false;
}
} 最佳答案