所以现在我正在为我的 C# 应用程序开发一个基本的会话系统。我有一个带有 id、用户名、密码的表和一个带有 id、代码、开始的会话表。
两个表的 id 列都与登录的用户相关(用户表的 id 与会话表相同)。我想要做的是,当它设置会话时,它首先检查会话是否已经处于活动状态,如果是,那么它只会更新当前的会话,如果没有,它将插入一个新的会话。这工作正常。我的问题是,无论我登录哪个用户,因为 id 总是设置为 0,所以我一次最多可以有一个会话处于活动状态。
这是我目前正在做的事情:
//get id of inputted user.
$id = getUserId($username);
//first check if a session already exists that is connected to this username
$query = mysql_query("SELECT * FROM sessions WHERE(`id`='$id')") or die("Couldn't query database: <br> <br> " . mysql_error());;
if(mysql_num_rows($query) > 0) {
//session already exists, update it.
mysql_query("UPDATE sessions SET `code`='$code', `start`='$date' WHERE(`id`='$id')") or die("Failed to update session: <br> <br> " . mysql_error());
} else {
//session doesn't exist so lets create one
mysql_query("INSERT INTO sessions (`id`,`code`,`start`) VALUES('$id','$code', '$date')") or die("Failed to create session: <br> <br> " . mysql_error());
}
还有我的 getUserId 函数:
function getUserId($username) {
$query = mysql_query("SELECT * FROM users WHERE(`username`='$username')");
$row = mysql_fetch_row($query);
return $row[0];
}
我的问题,如果你还没有得到它。为什么即使 getUserId() 函数返回用户的正确 id,“id”总是设置为 0?
有什么建议么?