【问题标题】:Garbage collection Php [duplicate]垃圾收集Php [重复]
【发布时间】: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


    【解决方案1】:

    您的查询不正确。 delete 不需要列出要删除的列,它会删除整行。试试:

    DELETE FROM sessions WHERE access < :old
    

    【讨论】:

      猜你喜欢
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 2012-12-20
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多