我几乎不敢发布这个,因为自动搜索返回的前 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'];