我收到此脚本的服务器错误。我假设SQL没有正确的语法,但我已经尝试了所有我能想到和彻底研究的东西。我确信这只是一个新手,天真的错误,但任何建议都将受到赞赏。
function updateLogout($userID) {
$success = false;
// Get current date-time in MySQL format
$nowTimeStamp = date("Y-m-d H:i:s");
$insertLogout_SQL = "UPDATE AccessLog SET";
$insertLogout_SQL .= " timeLogout='".$nowTimeStamp."'";
$insertLogout_SQL .= " WHERE userID='".$userID."'";
if (mysql_query($insertLogout_SQL)) {
$success = true;
} else {
$success = $insertLogout_SQL . "<br />" . mysql_error();
}
return $success;
}
答案 0 :(得分:1)
更好的选择是将timeLogout设置为NOW()
,因为我遇到了MySQL的时间戳和PHP的时间戳之间的差异,但是,这应该可行。
还应注意,mysql_*
函数已被弃用。考虑将新的(甚至旧的)代码切换到PHP的PDO或Mysqli。
答案 1 :(得分:1)
来自@Matt的回答:
function updateLogout($userID) {
$success;
$insertLogout_SQL = "UPDATE `AccessLog` SET `timeLogout`= NOW() WHERE userID = '$userID'";
if (mysql_query($insertLogout_SQL))
$success = true;
else
$success = $insertLogout_SQL . "<br />" . mysql_error();
return $success;
}
此外,您应该使用mysqli_query
。
答案 2 :(得分:0)
有几件事:
1。)不要在PHP中弄乱date
,而是插入MySQL函数NOW()
,它将在当前时间输入。 (切记不引用NOW()
)
2。)如果$userID
是一个数字(它可能是),那么就不要引用它。到MySQL:
3 !== "3"
即,它不进行类型转换。
因此,您的查询应如下所示:
UPDATE `AccessLog` SET timeLogout=NOW() WHERE userID=$userID
您还应该查看mysqli或PDO。您当前使用的mysql是depreciated。
答案 3 :(得分:0)
function updateLogout($userID)
{
$query = "UPDATE AccessLog SET timeLogout=NOW() WHERE userID=$userID";
if (mysql_query($query))
{
return TRUE;
} else
{
return FALSE;
}
}
使用mysql_real_escape_string()
转义传递给数据库的数据也是一种很好的做法。