将SQL结果设置为SESSION等效项

时间:2014-12-04 15:44:00

标签: php session foreach key-value

使用如下表格设置:

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集合,数组中的数字位置为每个设置为会话变量的$行?:< / p>

echo $ _SESSION [&#39; cid&#39;];结果在23432
echo $ _SESSION [&#39; 0&#39;];结果在23432

$ _ SESSION [&#39; cid&#39;]是有意的,但$ _SESSION [&#39; 0&#39;]不是

1 个答案:

答案 0 :(得分:2)

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

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