Я пытаюсь преобразовать обычные сеансы на основе файлов в более управляемые сеансы на основе базы данных, что дает мне большую гибкость в плане масштабирования и управления сеансами, в том числе удаленного их завершения.
Это текущий процесс входа в систему:
if($db)//$u&&$p)
{
$sql = "SELECT * FROM tbl_user WHERE ";
switch(LOGIN_METHOD)
{
case 'both':
$sql .= "(username='".$db->real_escape_string($u)."' OR useremail='".mysql_real_escape_string($u)."')";
break;
case 'email':
$sql .= "useremail='".$db->real_escape_string($u)."'";
break;
default:
$sql .= "username='".$db->real_escape_string($u)."'";
break;
}
$sql .= " AND userpassword = '".md5($sysconfig['salt'].$p)."'";
$rs = @$db->query($sql);
if(!$rs) return false;
if($rs->num_rows)
{
$this->set_session(array_merge($rs->fetch_assoc(),array('expires'=>time()+(15*60))));
$return = true;
}
$rs->free_result();
$db->close();
unset($rs,$sql);
}
Интересующая меня строка, в которой он устанавливает сеанс:
$this->set_session(array_merge($rs->fetch_assoc(),array('expires'=>time()+(15*60))));
Где, set_session:
private function set_session($a=false)
{
if(!empty($a))
{
$_SESSION['exp_user'] = $a;
}
}
В таблице хранятся только имя пользователя, адрес электронной почты для входа, пароль для входа и идентификатор пользователя.
Как бы я мог преобразовать это в систему сеансов на основе базы данных, работающую на MySQL, конечно?
Стоит ли использовать таблицы типов MEMORY или HEAP?