Php 在mysql数据库中存储登录时间
我正在尝试将登录时间存储在mysql数据库中。 我想要的是..当用户登录..脚本应该将当前时间存储在表“user”中,表中有一列“last_seen”。 最后看到的是DATETIME数据类型 以下是我编写的代码(这是登录脚本的一小部分。)它在用户输入用户名和密码并在数据库中匹配后工作:-Php 在mysql数据库中存储登录时间,php,mysql,Php,Mysql,我正在尝试将登录时间存储在mysql数据库中。 我想要的是..当用户登录..脚本应该将当前时间存储在表“user”中,表中有一列“last_seen”。 最后看到的是DATETIME数据类型 以下是我编写的代码(这是登录脚本的一小部分。)它在用户输入用户名和密码并在数据库中匹配后工作:- $_SESSION['username']=$username; $_SESSION['logged']=1; $date = date('Y-m-d H:i:s'); $query = "INSERT INT
$_SESSION['username']=$username;
$_SESSION['logged']=1;
$date = date('Y-m-d H:i:s');
$query = "INSERT INTO user
(last_seen)
VALUES
('" . $date . "')
WHERE user_name = '" . $username . "'";
mysql_query($query, $db) or die (mysql_error($db));
header('Refresh: 5; URL = main.php');
echo "Login successful, redirecting...";
die();
这给我带来了一个错误:-
您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第5行“WHERE user_name=”test“”附近要使用的正确语法
(我登录的帐户的用户名是:-test)
我应该修改什么才能使代码正常工作?代码会将用户的登录时间存储在数据库中(稍后将在后端页面访问该数据库)。不要在PHP中生成日期。只需
UPDATE .... SET last_seen=now() WHERE ...
^^^^^
在mysql中
除此之外,
INSERT
在任何形状或表单中都不接受WHERE
子句。不使用PHP生成日期。只使用
UPDATE .... SET last_seen=now() WHERE ...
^^^^^
$query = "UPDATE user
SET last_seen = '" . $date . "'
WHERE user_name = '" . $username . "'";
在mysql中
除此之外,INSERT
绝不以任何形式接受WHERE
子句
$query = "UPDATE user
SET last_seen = '" . $date . "'
WHERE user_name = '" . $username . "'";
但是,你应该使用<代码>现在()和代码>,这样MySQL会决定用户登录的时间。此外,考虑到密码比较时的启动事务和更新用户登录时的准确性。
但是,您应该使用
NOW()你所得到的错误意味着你有错配的引用:你应该更新一个列吗?还是插入一个新的行?我应该为用户“$username”更新列“last_seen”。您可能应该开始使用MySQlith您收到的错误表明您的引号不匹配您应该更新列吗?还是插入新行?我应该为用户“$username”更新列“last_seen”。您可能应该开始使用mysqliIt的perfect:)您必须更新表中存在的用户详细信息的上次查看列:)+1@Marc BIt的perfect:)您必须更新表中存在的用户详细信息的上次查看列:)+1@Marc B