Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL插入/更新问题_Php_Mysql_Row - Fatal编程技术网

Php MySQL插入/更新问题

Php MySQL插入/更新问题,php,mysql,row,Php,Mysql,Row,所以现在我正在为我的C#应用程序开发一个基本的会话系统。我有一个带有id、用户名、密码的表和一个带有id、代码、开始的会话表 两个表的id列都与登录的用户相关(用户表的id与会话表相同)。我想做的是,当它设置会话时,它首先检查会话是否已经处于活动状态,如果已经处于活动状态,它将只更新当前会话,如果没有,它将插入一个新会话。这个很好用。我的问题是,无论我作为哪个用户登录,id总是设置为0,这样我一次最多可以激活一个会话 以下是我目前正在做的事情: //get id of inputted user

所以现在我正在为我的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()函数返回正确的用户id,“id”也总是被设置为0


有什么建议吗?

我刚刚发现了错误

我有一行调用setSession函数

//set session
setSession($username. $password);

它应该只解析用户名,但我忘了取出$password。因此,当它查找用户名“user1”时,例如,它实际上会查找“user1password”,因此会返回0,因为没有包含这些详细信息的记录。

Suggestion。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,是的,我知道我不应该。但是出于这个目的,我并不担心在这一点上进行切换。如果您切换函数以返回一个assoc_数组并使用$row['id'],会发生什么?或者只选择id,而不是*。。?
//set session
setSession($username. $password);