来自查询的正确响应,但我仍然收到“警告:mysqli_fetch_array() 期望参数 1 mysqli_resul


Correct response from query, but I'm still getting "Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, string given in..." error

我几乎不敢发布这个,因为自动搜索返回的前 20 个问题都被遗忘了。 我已经通读了已经提出的每个问题,我的问题似乎有所不同。

我的查询工作正常,因为它为我提供了正确的数据作为响应。 但是,我仍然收到此错误,我不知道为什么。 代码如下:

$acOneLowestCostQuery  = "SELECT * FROM $acSupplierOne where quotePartNumber = '$acPartNumberOne' ORDER BY quoteCost ASC LIMIT 1" ;
$acOneLowestCost    = mysqli_query($con, $acOneLowestCostQuery);
 while ($row = mysqli_fetch_array($acOneLowestCost)) {
    $acOnePartNumber       = $row['quotePartNumber'];
    $acOneLowestCost       = $row['quoteCost'];    
  ?>

我的表输出正确的信息,但表上方是:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, string given in ... on line 199

第 199 行是

while ($row = mysqli_fetch_array($acOneLowestCost)) {

我不明白的是:

  • 我从另一个页面复制了整个代码(只是更改了变量名称),它运行良好(没有任何错误)
  • 代码执行得很好,并将正确的数据返回到我的表中
  • 我不明白为什么它告诉我我要传递一个字符串 - 除非是因为查询结果只返回一行(从ASC LIMIT 1),也许你需要两行来制作数组???

有人会帮助我理解为什么会发生此错误吗? 我宁愿解决问题,然后使用错误报告不显示它。

问题出在变量命名中:

$acOneLowestCost    = mysqli_query($con, $acOneLowestCostQuery);
// here $acOneLowestCost is mysqli_result
while ($row = mysqli_fetch_array($acOneLowestCost)) {
    $acOnePartNumber       = $row['quotePartNumber'];
    // and here it becomes a string which then passed to mysqli_fetch_array
    $acOneLowestCost       = $row['quoteCost'];