替代foreach() - PHP

时间:2017-08-19 15:17:56

标签: php foreach fetchall

我试图找到我的方法的替代方法,以便为特定用户获取其会话等于其用户名的函数中的所有数据。

它一直正常工作,直到我移动托管,现在它抛出错误。以下代码是我在旧托管上使用时正常工作的代码:

$username = 'Benza';
$query = "SELECT id, username, password, email, ip, lastonline, rank, register_time FROM users_ WHERE username = '$username'";
$result = $con->query($query);
return $result->fetch_all();

它说:Call to a member function fetch_all() on boolean

当我尝试以下内容时:

$username = 'Admin';
$query = "SELECT id, username, password, email, ip, lastonline, rank, 
register_time FROM users_ WHERE username = '$username'";
$result = $con->query($query);
$data = mysqli_fetch_all($result,MYSQLI_ASSOC);
return $data;

我得到 Warning: mysqli_fetch_all() expects parameter 1 to be mysqli_result, boolean given Warning: Invalid argument supplied for foreach()

我正在调用我的foreach函数,如下所示(因为上面的代码在同一个类中的函数中):

$users = $this->grabUserInfos($con);
foreach ($users as $user) {
    $username = $user[1];
    $email = $user[3];
}

1 个答案:

答案 0 :(得分:0)

问题似乎是执行查询的部分不再起作用了:

$result = $con->query($query);

你在$ result中有一个布尔值的事实意味着查询函数出了问题。因此,fetch_all和mysqli_fetch_all()函数无法正常工作。

您应该查看该部分并找出查询失败的原因。