在以下代码中,我如何检索列" email"来自数据库"用户"。
我们从表单中获取$ Username和$ password,我们过滤它们执行所有检查并提交查询:
$sql = "SELECT * from users WHERE username ='$username' AND password='$password' LIMIT 1";
$result = $mysqli->query($sql);
IF( $result->num_rows == 1) {
$_SESSION['sess_user']=$username;
$_SESSION['sess_email']=$result->email; }
看起来列电子邮件没有被选中,我可以打印$ _SESSION [' sess_user']所以数据库中有匹配但是我想通过做" SELECt * ... "我会选择该行中的所有列。如何访问"电子邮件"所选行中的值(不执行来自...的新查询SELECT电子邮件)
非常感谢
答案 0 :(得分:0)
$result = $mysqli->query($sql);
您无法直接通过$result
访问列值,因为它是mysqli_result
类型的对象。您必须首先从中获取结果数组,然后尝试访问列值,如下所示:
if($result === TRUE)
{
$row = $result->fetch_array(MYSQLI_ASSOC);
$_SESSION['sess_user']=$username;
$_SESSION['sess_email']=$row["email"];
}
$result->free();