У меня есть специальный метод сеанса GC Session, который должен удалить любые старые сеансы из моей базы данных. Вот FUNC:Правильный синтаксис сборки мусора PHP-сессии?
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;
}
в $ макс вар представляет значение session.gc_maxlifetime
в моей php.ini. Вот настройки для сбора мусора в моих .ini:
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
Однако всякий раз, когда работает эта функция, я всегда получаю следующее Fatal Error:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM Sessions WHERE access < 1482965344' at line 1' in /Applications/MAMP/htdocs/demo/DB.php:66
не может помочь, но чувствую, что я что-то не хватает тривиальные ... Любые предложения?
'правильный синтаксис для использования рядом '*' он сказал вам, где начинается ошибка; ваш запрос недействителен. –
Вы использовали правильный синтаксис в своем другом вопросе http://stackoverflow.com/q/39928440/1415724 'DELETE FROM session', так почему вы делаете' DELETE * 'сейчас? –