php – $结果只有一行然后转换成会话

我试图从表’帐户’查询一行.我很讨厌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']";

最佳答案 从你的问题:

how can i print the data?

首先,您需要在代码中添加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;

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

边注:

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

点赞