如何将“UserID”与“用户名”相关联,以便我可以更新我的表格?

时间:2014-04-08 14:47:16

标签: php mysql sql session

这是我的问题:

$query = ("UPDATE users SET username='$username', password='$password', email='$email' WHERE userID = '79'");

$result = mysqli_query($connection, $query);

我想更新已登录的用户,而不是更新用户79.因此,我会放79而不是放$_SESSION。如果是,则会话链接到用户名,而不是用户ID。所以我想知道,如何将该用户登录的用户名与与之关联的用户ID链接起来?

抱歉,我是这个论坛的新手。

当他们登录时,他们只输入他们的用户名和密码。他们不输入他们的userID。那么,如果没有通过表单发布,我如何获取用户ID?我不知何故需要将用户名(他们输入的内容)与他们的用户ID相关联。

3 个答案:

答案 0 :(得分:0)

在$ _SESSION中存储用户名时,也存储用户ID。你只需要写$_SESSION['UserID']='USER_ID_VALUE'

这样做,您就可以在用户拥有活动会话时访问用户ID。

答案 1 :(得分:0)

这是滚动自己的会话管理系统的风险之一。如果你在犯下很多错误之前从未这样做过。其中一些错误将非常严重。这就是为什么使用development framework给你一个良好的基础几乎总是一个好主意。

一般情况下,当您成功登录时,您应该捕获已登录用户的ID。用户名不能被推定为一致的,但ID将是。

然后,您可以对此ID执行更新。

请注意,使用DoctrinePropel之类的ORM,这将非常简单。你在这里采取行动的方式使其有意为之。

答案 2 :(得分:0)

$identity = new stdClass();
$identity->user_id =123;
$identity->username = 'john';

$_SESSION['identity'] = $identity;

// usage without checks,

$identity = $_SESSION['identity'];
echo $identity->user_id;