mysqli没有准备声明的结果?

时间:2015-04-09 21:32:54

标签: php sql mysqli

我有这个用于用户登录的准备声明。它工作正常,如果登录正确则返回1.

之后,我需要获取用户ID和他的用户名(从bd,我认为它更好然后从输入直接到会话)。

但我没有结果$rst["id"];$rst["user"];

问题是什么?

 $stmt = $mysqli_link->prepare("SELECT id, user FROM cadastro WHERE binary user = ? AND binary senha = ?");
    $stmt->bind_param('ss', $user, $senha);
    $stmt->execute();
    $stmt->store_result();

        $num = $stmt->num_rows;
        if($num > 0)
        {
            //Retorna os dados do banco
            $rst = $stmt->fetch();
                $id     = $rst["id"];
                $user   = $rst["user"];
                $sessionid = md5(time()); 

                echo"$user - $id - $sessionid";
}
?>
谢谢你!

1 个答案:

答案 0 :(得分:1)

您需要使用$rst = $stmt->fetch_assoc$stmt->fetch()仅在使用$stmt->bind_result()后使用,它会将结果提取到该调用中指定的变量中。

请注意,将fetch_assoc()与预准备语句一起使用需要安装MYSQLND驱动程序。