我在使用while循环遍历SQL连接查询的结果时遇到了一些麻烦。使用普通查询,我会对查询执行以下操作并循环显示结果:
$sql = "SELECT * FROM `orders` ORDER BY `orderID` ASC";
$query = $link->query($sql);
while ($row = mysqli_fetch_array($query)) {
echo $row['orderID'];
...
}
工作正常。但是,现在我尝试使用连接查询将两个具有一个公共列名的表连接在一起。这两个表是" customerData"和"命令"他们有" customerID"与数据库表中匹配的customerID相同的列。我的查询如下:
$sql = "SELECT `orders.orderID`, `customerData.customerName`, `orders.order`, `customerData.address` FROM `customerData` INNER JOIN `customerData` ON orders.customerID=customerData.customerID";
$query = $link->query($sql);
while ($row = mysqli_fetch_array($query)) {
echo $row['orderID']; // this doesn't work
echo $row['orders.orderID']; // this doesn't work either
}
因此,当我运行该代码时,没有任何回声消失,我收到以下错误:
PHP警告:mysqli_fetch_array()要求参数1为mysqli_result,第94行的/index.php中给出布尔值
第94行恰好是while循环的开始,但我认为这个错误表明MySQL查询存在问题。
这是我第一次使用"加入"我的谷歌和StackOverflow搜索解决这个问题并没有带来任何好处。谁能发现我做错了什么?提前谢谢。
修改:此问题与"重复问题"下面的链接,我使用mysqli,而不是mysql,它有不同的语法,以及链接中的问题是单个表mysql查询的事实,而我的问题是关于在mysqli查询中加入两个表。我在下面的问题中的第一个代码块就像给出的链接,但正如我所提到的,代码的这部分工作正常。我在使用JOIN的查询语法时遇到问题,或者我需要对while循环做些不同的事情。