您好我在数据库中更新用户的上次登录时间有问题,如果我将其设置为更新其他列,则它可以正常工作,但是当我尝试更新特定列“lastlogin”时它不起作用
我的代码:
@mysql_query("UPDATE my_users SET lastlogin=NOW() WHERE id=".$_SESSION["id"]);
My DB column:
column name: lastlogin
type: datetime
Null: No
Default: 0000-00-00 00:00:00
在DB中设置列的方式有什么问题吗?就像我上面提到的那样,如果我要告诉它将NOW()放在另一列中,它可以正常工作。
答案 0 :(得分:0)
使用mysql_error
尝试查找错误,然后将其发布到此处,以便我们在您需要时提供帮助。 (会评论,但低代表)
答案 1 :(得分:0)
根据我过去的经验,mysql_query()不一定在执行sql之前替换变量。尝试以这种格式写作。还可以使用mysql_error检查代码执行是否存在任何问题:
$sql = "UPDATE my_users SET lastlogin=NOW() WHERE id=".$_SESSION["id"];
mysql_query($sql) or die(mysql_error());
如果没有错误,那么为什么没有发生laslogin条目的可能性很小:
调试:
还发现,早期版本的mysql不支持使用now()更新datetime列。在这种情况下,请尝试将列类型重置为TIMESTAMP。有关详细信息,请参阅此处:https://bugs.mysql.com/bug.php?id=27645
答案 2 :(得分:0)
解决。还有一个类似的声明进一步下来,这是超过骑这个!我多么愚蠢,但容易错过!