Php 如何将会话数据设置为数组中的特定项

Php 如何将会话数据设置为数组中的特定项,php,mysql,arrays,session,Php,Mysql,Arrays,Session,这就是我所尝试的: $id = mysql_query("SELECT userid from members where username='".$gebruikersnaam."'"); $_SESSION["id"] = (string)$id; var_dump($_SESSION) 其结果如下: array[1] { ["id"]=> string(15) "Resource id #14"} 使用mysqli代替mysql并避免sql注入,而不是实际的字符串值: $

这就是我所尝试的:

$id = mysql_query("SELECT userid from members where username='".$gebruikersnaam."'");    
$_SESSION["id"] = (string)$id;
var_dump($_SESSION)
其结果如下:

array[1] { ["id"]=> string(15) "Resource id #14"}

使用mysqli代替mysql并避免sql注入,而不是实际的字符串值:

$res = mysqli_query($conn, "SELECT userid from members where username='".mysqli_real_escape_string($conn, $gebruikersnaam)."'");    
$row = mysqli_fetch_assoc($res);
$_SESSION["id"] = (string)$row["id"];

mysql_查询函数返回一个资源。您需要从该资源中获取一行。那里面会有你想要的数据

$username = mysqli_real_escape_string($link, $unescapedUsername);
$result = mysqli_query($link, 'SELECT userid FROM `members` WHERE username = "' . $username . '"');
// ^ result is now a resource
$row = mysqli_fetch_assoc($result);
// ^ row now has an array
$_SESSION['id'] = $row['userid'];

正如大家所说,不要再使用mysql函数了。

。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果选择PDO,。将在其他页面中使用字符串变量,则会出现这种情况。您确定您的用户参数正确吗?