【发布时间】:2026-02-21 16:25:01
【问题描述】:
我正在尝试从已建立索引以相互关联的多个表中提取数据。我在 MySQLWorkbench 中运行了这个查询,它运行成功。但是,当我尝试运行 PHP 测试时,什么都没有出现,甚至第一个字段也没有。这是我的代码:
<?php
$db = new mysqli('host', 'user', 'password', 'database');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "
SELECT
`Contact`.`firstName`,
`Contact`.`lastName`,
`ssn`.`ssn`,
`Contact`.`country`,
`Allergies`.`allergy`,
`Allergies`.`allergyType`,
`Allergies_Contact`.`allergyNotes`,
`CurrentPrescriptions`.`prescriptionName`,
`CurrentPrescriptions`.`prescribedDate`,
`BloodType`.`bloodType`
FROM
`database`.`Contact`,
`database`.`Allergies_Contact`,
`database`.`Allergies`,
`database`.`ssn`,
`database`.`CurrentPrescriptions`,
`database`.`BloodType`
WHERE
`Contact`.`contactKey` = `Allergies_Contact`.`contactKey`
AND `Allergies`.`allergiesKey` = `Allergies_Contact`.`allergiesKey`
AND `ssn`.`contactKey` = `Contact`.`contactKey`
AND `CurrentPrescriptions`.`contactKey` = `Contact`.`contactKey`
AND `BloodType`.`contactKey` = `Contact`.`contactKey`;
";
$result = $db->query($query) or die($db->error.__LINE__);
if ($result = mysqli_query($db, $query)) {
while ($row = mysqli_fetch_row($result)) {
print(row[0]);
}
mysqli_free_result($result);
}
mysqli_close($db);
?>
请告诉我我在这里做错了什么,因为我可以看到它的格式正确。
【问题讨论】:
-
要从不同的表中获取数据,您应该使用 SQL 连接。它非常方便,专为这种情况而设计。 See here
-
print(row[0]);应该是print($row[0]);,除非缺少的$只是这里的复制/粘贴问题?另外,为什么要查询2次->$result = $db->query($query)&&$result = mysqli_query($db, $query) -
我希望我能接受您的评论作为答案,因为就是这样
标签: php mysql select mysqli mysql-workbench