警告:mysqli_fetch_array() 期望参数 1 是 mysqli_result,对象在

新手上路,请多包涵

当我尝试运行此代码时,我遇到了一些问题。我收到此错误:

警告:mysqli_fetch_array() 期望参数 1 是 mysqli_result,对象在

我的问题出在 第 32 行while 语句中:

 $connection = mysqli_connect($host, $username, $password, $db_name);
$sql = 'SELECT * FROM provinsi';
while ($r = mysqli_fetch_array($connection, $sql)) { // line 32
    $id = $r['id'];
}

原文由 age saputra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

mysqli_fetch_array() 的第一个参数必须是查询的结果。您正在做的是传递连接(这没有意义)和查询命令本身。

在此处阅读文档:http: //php.net/manual/en/mysqli-result.fetch-array.php

要解决此问题,请先执行查询,然后将结果存储到变量中,然后再获取该变量。

 $sql = "select * from privinsi";
$result = mysqli_query($connection,$sql);
while($r = mysqli_fetch_array($result))
{
    // your code here
}

原文由 Lorence Hernandez 发布,翻译遵循 CC BY-SA 4.0 许可协议

$sql = "select * from privinsi";
$result = mysqli_query($connection,$sql);
if (!$result) {
    printf("Error: %s\n", mysqli_error($connection));
    exit();
}else{
   while($row = mysqli_fetch_array($result)){
    // your code here
   }
}

这可以帮助您显示错误,以便您能够找出查询不起作用的确切原因。这在您使用条件或尝试在表中查找特定列时很有帮助。疲倦的眼睛会使您忽略特定列不在当前数据库中的事实以及您在编写查询时可能会随便忽略的其他因素。如果您的错误不详细,您将不可避免地绕着圈子寻找不超出您的解决方案。

原文由 Sammy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题