Session - MySQL Handler
<?php
require('session_mysql_handler.php');
$objSessionHandler = new MySQLSessionHandler();
session_set_save_handler($objSessionHandler, true);
?>
<?php
class MySQLSessionHandler implements SessionHandlerInterface
{
public function open($savePath, $sessionName) {
return TRUE;
}
public function read($sessionId) {
try {
$stmt = $mysqli->prepare("SELECT `session_data` FROM `sessions` WHERE `session_id` = ?");
$stmt->execute([$sessionId]);
$stmt->bind_result($sessionData);
$stmt->fetch();
$stmt->close();
return $sessionData ? $sessionData : '';
} catch (Exception $e) {
return '';
}
}
public function write($sessionId, $sessionData) {
$time = time();
try {
$stmt = $mysqli->prepare("REPLACE INTO `sessions` (`session_id`, `created`, `session_data`) VALUES (?,?,?)");
$stmt->execute([$sessionId, $time, $sessionData]);
$stmt->close();
return TRUE;
} catch (Exception $e) {
return FALSE;
}
}
public function destroy($sessionId) {
try {
$stmt = $mysqli->prepare("DELETE FROM `sessions` WHERE `session_id` = ?");
$stmt->execute([$sessionId]);
$stmt->close();
return TRUE;
} catch (Exception $e) {
return FALSE;
}
}
public function gc($maxlifetime) {
$past = time() - $maxlifetime;
try {
$stmt = $mysqli->prepare("DELETE FROM `sessions` WHERE `created` < ?");
$stmt->execute([$past]);
$stmt->close();
return TRUE;
} catch (Exception $e) {
return FALSE;
}
}
public function close() {
return TRUE;
}
}
?>
session_mysql_handler.php