我有以下代码:
$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错误,如果我直接在数据库上运行命令,它将运行正常。只有一个结果有什么不同吗?
答案 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())) {
这将给出结果数组。