【发布时间】:2016-02-08 00:44:17
【问题描述】:
我有这个脚本在数据库中存储加密会话以防止会话劫持。我已经定义了我自己的会话存储函数,这些函数都存储在会话类中。所有函数似乎都可以正常工作,但是一旦我运行我的垃圾收集器功能。它会抛出一个错误说明
致命错误: 未捕获异常 'PDOException' 并带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在 C:\wamp\www\session\class.database 中的 ' * FROM sessions WHERE access
垃圾回收功能:
public function _gc($max){
// Calculate what is to be deemed old
$old = time() - $max;
$this->db->query('DELETE * FROM sessions WHERE access < :old');
//Error Possibly occurs on this line
// Set query
// Bind data
$this->db->bind(':old', $old);
// Attempt execution
if($this->db->execute()){
// Return True
return true;
}
// Return False
return false;
}
}
查询功能功能:
public function query($query){
$this->stmt = $this->dbh->prepare($query);
}
文件:
http://codepad.org/QCfTH5Rh(会话类文件,它定义了读取、写入会话等的函数)
http://codepad.org/j3eLaZgd(数据库类文件,定义查询、执行等功能)
【问题讨论】:
标签: php mysql session pdo garbage-collection