/** * Ecrit les données de session dans le support de stockage * @method write * @param string $session_id * @param string $session_data * @return boolean */ public function write($session_id, $session_data) { // definition de la durée avant expiration $session_expire = intval(time() + $this->session_time); // verification de session existante $sql = "SELECT COUNT(session_id) AS total\n FROM " . $this->session_table . " WHERE session_id='{$session_id}';"; $query = $this->link_db->prepare($sql); $query->execute(); $session = $query->fetch(\PDO::FETCH_OBJ); // session inexistante if (!$session || $session->total == 0) { // insertion de la session $insert = $this->link_db->prepare('INSERT INTO ' . $this->session_table . ' VALUES(?, ?, ?)'); return $insert->execute([$session_id, $session_data, $session_expire]); } else { // mise à jour de la session $sqlUpdate = 'UPDATE ' . $this->session_table . ' SET session_data=\'' . $session_data . '\', session_expire=\'' . $session_expire . '\' WHERE session_id=\'' . $session_id . '\';'; $update = $this->link_db->prepare($sqlUpdate); return $update->execute(); } }