Моя страница устанавливает signin_time
устанавливает ее в NOW()
, устанавливает logged_in
в 1, когда пользователь успешно подписывается на страницу. Я хочу сделать это, чтобы установить signout_time
в NOW()
когда пользователь также выйдет. Для этого я использую следующий запрос
$stmt = $db->prepare("UPDATE `ulog` SET `logged_in`=0, `signout_time`=NOW(),`ckey`= '', `ctime`= '' WHERE user_id=? AND logged_in=1") or die($db->error);
Пробовал выполнить этот запрос. Он не возвратил никакого сообщения об ошибке, но я не заметил никаких изменений в таблице db, также журнал ошибок php ничего не показывает.
Возможно, у меня есть синтаксическая ошибка (я устанавливаю logged_in=0 where logged_in=1
). У меня нет другой идеи, как это сделать. Может быть, я должен искать строки, где signout_time=0
? Какие-либо предложения?
ОБНОВИТЬ
Вот целая функция:
function logout() { global $db, $wsurl; if (isset($_SESSION['user_id'])) { $userid = $_SESSION['user_id']; $stmt = $db->prepare("UPDATE `ulog` SET `logged_in`=0, `signout_time`=NOW() WHERE user_id=? AND logged_in=1") or die($db->error); } else { $userid = $_COOKIE['user_id']; $stmt = $db->prepare("UPDATE `ulog` SET `logged_in`=0, `signout_time`=NOW(),`ckey`= '', `ctime`= '' WHERE user_id=? AND logged_in=1") or die($db->error); } $stmt->bind_param("i", $userid) or die($stmt->error); $stmt->execute() or die($stmt->error); $stmt->close(); $_SESSION = array(); //destroy all of the session variables} session_destroy(); foreach ($_COOKIE as $c_id => $c_value) { setcookie($c_id, '', 1, "/"); } header("Location: " . $wsurl); }