将 SQL 结果设置为“会话等效项”


Set SQL results to SESSION equivalent

表格设置如下:

CID   | FNAM | LNAME | CITY ------> 30 more fields
23432 | John |  Doe  | Denver
54342 | Jane |  Doe  | Boston

以这种方式获取结果集时(查询将其缩小到 1 个结果):

$data = mysqli_query($con,$query);
$row = mysqli_fetch_array($data);

并使用下面将$row中的每个返回列设置为等效的 SESSION 变量

foreach ($row AS $key=>$value) {$_SESSION["$key"]=$value;}

为什么我得到一个匹配的 $_SESSION 集,同时具有$key名称,以及一个 $_SESSION 集,每个设置为会话变量的$row在数组中都有一个数字位置?

回声 $_SESSION['cid']; 结果在 23432
回显 $_SESSION['0']; 结果在 23432

$_SESSION['cid'] 是有意的,但 $_SESSION['0'] 不是

因为你使用的是mysqli_fetch_array而不是mysqli_fetch_assoc

但无论如何,您只会从数据库中获得最后一行,因为您总是会覆盖给定的键。循环遍历字段名称,创建一个数组,并将该数组添加到结果数组中。