MySQLi更新查询问题 [英] MySQLi update query issue
问题描述
我的页面设置signin_time
将其设置为NOW()
,当用户成功登录页面时将logged_in
设置为1.我也想在用户退出时将signout_time
设置为NOW()
.为此,我使用以下查询
My page sets signin_time
sets it to NOW()
, sets logged_in
to 1 when user successfully signs into page. What I want to do is to set signout_time
to NOW()
when user signs out too. For this purpose I'm using following query
$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错误日志也没有显示任何内容.
I tried to execute this query. It didn't return any error message, but I haven't noticed any change in db table too, also php error log doesn't show anything.
也许我遇到语法错误(我正在设置logged_in=0 where logged_in=1
).我不知道该怎么做.也许我应该搜索signout_time=0
所在的行?有什么建议?
Maybe I have syntax error (I'm setting logged_in=0 where logged_in=1
). I have no other idea how to do that. Maybe I should search for rows where signout_time=0
? Any suggestions?
这是整个功能:
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);
}
推荐答案
您必须执行查询.
$userId = 1; // some number
$stmt->execute(array($userId));
或者您可以使用方法链接将它们组合为一个:
Or you could combine them into one using method chaining:
$db->prepare(
"UPDATE `ulog` SET `logged_in`=0, `signout_time`=NOW(),
`ckey`= '', `ctime`= '' WHERE user_id=? AND logged_in=1"
)->execute(array($userId));
此外,请确保已设置您的$userid
.在它上做一个var_dump()
,看看会得到什么.
Also, make sure your $userid
is being set. Do a var_dump()
on it and see what you get.
这篇关于MySQLi更新查询问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!