来自查询的正确响应,但我仍然得到"警告:mysqli_fetch_array()期望参数1是mysqli_result,字符串在......"错误

时间:2015-01-13 19:21:24

标签: php mysqli

我几乎不敢发布此消息,因为自动搜索返回的前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)) {

我不明白的是:

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

有人会帮我理解为什么会出现这种错误吗?我宁愿修复问题,然后使用错误报告来显示它。

1 个答案:

答案 0 :(得分:3)

问题在于变量命名:

$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'];