データベースから古いセッションを削除するカスタムGCセッションメソッドセットがあります。ここで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;
}
$マックスvarは私のphp.iniでsession.gc_maxlifetime
値を表しています。ここに私の.iniでのガベージコレクションの設定は次のとおりです。
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
この機能が実行されるたびしかし、私は常に次の致命的なエラーを取得:
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 * 'をやっていますか? –