0

我创建了一个登录页面,在 db 表中我有一个名为 last_access 的字段来存储上次登录日期和时间,数据类型是时间戳

以下是select语句;

$sql="SELECT * FROM $tbl_name WHERE $db_usercol='$myusername' and $db_passcol='$mypassword'";
$result=mysql_query($sql);

每次用户登录时如何更新字段“last_access”?并将值设置为 NOW()。

谢谢

4

3 回答 3

1
UPDATE $tbl_name set last_access = NOW() WHERE $db_usercol='$myusername'

或者你可以使用

UPDATE $tbl_name set last_access = NOW() WHERE 
               $db_usercol='$myusername' AND $db_passcol='$mypassword'

而不是您的选择,并检查有多少行受到影响。如果没有 -> 登录不成功。如果 1 -> 登录成功。如果更多,你有一个问题......

但首先应该删除那个 SQL 注入漏洞!

检查http://php.net/manual/en/book.pdo.php,您的 SQL 函数需要进行一些更改,但它实际上很容易使用,例如:

$pdo = new PDO("mysql:host=localhost;dbname=yourdbname", 'dbuser', 'dbpass');
$stmt = $pdo->prepare('SELECT * from table where column = :column');
$stmt->bindParam(':column', $column);
$stmt->execute();
$result = $stmt->fetchAll();

很简单,SQL注入攻击不会成功

于 2012-04-10T04:35:19.673 回答
0

在登录脚本/函数中添加:

$sql = sprintf("UPDATE %s SET last_access = NOW() WHERE id = %d", $tbl_name, $user_id);
$result = mysql_query($sql);

希望有帮助。

于 2012-04-10T04:31:47.653 回答
0

身份验证成功后,您可以执行以下操作:


//get the id after user has logged in then run the update query
mysql_query("UPDATE your_table SET `last_access` = NOW() WHERE id =".$id);
于 2012-04-10T04:35:07.387 回答