为什么收到警告:“期望参数1为mysqli_result,已给出字符串”?

时间:2018-07-25 08:05:20

标签: php loops mysqli parameters

我有以下代码:

$result=$db->query("SELECT * FROM gwub WHERE gwubStatus > 0") or die(mysqli_error($db));

if($result->num_rows>0) 
{
    while($row=mysqli_fetch_assoc($result)) {   

查询正在运行,并且正在执行数据库上所需的操作,但是我仍然收到以下警告:

  

警告:mysqli_fetch_assoc()期望参数1为mysqli_result,   给定的字符串

我没有mysqli错误,如果我直接在数据库上运行命令,它将运行正常。只有一个结果有什么不同吗?

2 个答案:

答案 0 :(得分:2)

我敢打赌,您在循环中为$result分配了任何内容,例如像这样:

while ($row = mysqli_fetch_assoc($result)) {
    $result = $row['some_column'];
}

在分配之后,$result不再包含查询结果,而是包含该列,它是一个字符串。循环的下一次迭代尝试在调用mysqli_fetch_assoc($result)时使用该字符串,但失败。

解决方案:在循环中使用其他变量。

答案 1 :(得分:-1)

您应该使用:

while($row=mysqli_fetch_assoc($result->result_array())) {

这将给出结果数组。