正确的PHP会话垃圾收集语法?

正确的PHP会话垃圾收集语法?,php,mysql,session,garbage-collection,Php,Mysql,Session,Garbage Collection,我有一个自定义的GC会话方法集,可以从数据库中删除任何旧会话。以下是函数: public function gc($max){ // Calculate what is to be deemed old date_default_timezone_set('America/Chicago'); $old = time() - $max; // Set query $this->db->query('DELETE *

我有一个自定义的GC会话方法集,可以从数据库中删除任何旧会话。以下是函数:

    public function gc($max){
      // Calculate what is to be deemed old
      date_default_timezone_set('America/Chicago');
      $old = time() - $max;

      // Set query
      $this->db->query('DELETE * FROM session WHERE access < :old');

      // Bind data
      $this->db->bind(':old', $old);

      // Attempt execution
      if($this->db->execute()){
        // Return True
        return true;
      }

      // Return False
      return false;
    }
但是,每当此函数运行时,我总是会遇到以下致命错误:

PHP致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在/Applications/MAMP/htdocs/demo/DB.php:66中第1行access<1482965344'的会话中使用的接近“*的正确语法

忍不住觉得我遗漏了一些琐碎的东西……有什么建议吗?

你应该使用:

'DELETE FROM session WHERE access<:old'
作为您的DML字符串


删除
*

您的SQL查询错误。“删除”和“从”之间没有*号。只要用这句话:

$this->db->query('DELETE FROM session WHERE access < :old');
$this->db->query('DELETE FROM session WHERE access<:old');

在'*
附近使用正确的语法,它告诉您错误从哪里开始;您的查询无效。您在另一个问题
DELETE FROM session
中使用了正确的语法,那么您现在为什么要执行
DELETE*
$this->db->query('DELETE FROM session WHERE access < :old');