$result只有一行,然后转换为会话


$result only one row then convert into session

我正在尝试从表"帐户"中查询一行。我有点搞砸了MYSQLI,所以我需要一些建议。我该怎么做?

$link = mysqli_connect("localhost","root","","database") or die("Error " . mysqli_error($link));
$query = "SELECT * FROM account WHERE username='".$user."' AND password='".$passcode."' LIMIT 1";
$result = $link->query($query) or die("Error " . mysqli_error($link));
$numrow = $result->num_rows;
$res = $result->fetch_assoc();

查询后我想将数据复制到会话,我这样做:

    session_start();  
    $tableau = array($res['cod_acc'],$res['username'],$res['password']); 
    $_SESSION['tableau'] = $tableau;

在这些之后,我如何打印数据?

    $tableau = $_SESSION['tableau']; 
    echo "$tableau['username']";

从你的问题:

如何打印数据?

首先,您需要在代码中添加error_reporting()

error_reporting(E_ALL);

您将值保存在数组中以$_SESSION

$tableau = array($res['cod_acc'],$res['username'],$res['password']); 
$_SESSION['tableau'] = $tableau;

如果您查看会话数组,它不是一个关联数组

所以你不能得到这样的结果:

$tableau = $_SESSION['tableau']; 
echo $tableau['username'];

溶液:

您可以从会话数组中获取用户名,如下所示:

echo $tableau[1]; // username on second index.

解决方案 2:

如果你想要关联索引,你需要使用关联数组作为:

$tableau = array(
"cod_acc"=>$res['cod_acc'],
"username"=>$res['username']); 
$_SESSION['tableau'] = $tableau;

现在您可以根据需要使用。请注意,我正在从会话中删除密码字段,我认为它不需要。

旁注:

我不知道为什么要将程序和面向对象的风格混合在一起。

问题出在其他一些行代码中,对不起这篇文章。但是谢谢大家。