使用PHP和mysqli从多个MySQL表获取数据
我试图从多个表中提取数据,这些表已被索引以相互关联。我在MySQLWorkbench中运行了这个查询,它成功地运行了。然而,当我试图运行一个PHP测试时,什么也没有显示,甚至第一个字段也没有显示。这是我的密码:使用PHP和mysqli从多个MySQL表获取数据,php,mysql,select,mysqli,mysql-workbench,Php,Mysql,Select,Mysqli,Mysql Workbench,我试图从多个表中提取数据,这些表已被索引以相互关联。我在MySQLWorkbench中运行了这个查询,它成功地运行了。然而,当我试图运行一个PHP测试时,什么也没有显示,甚至第一个字段也没有显示。这是我的密码: <?php $db = new mysqli('host', 'user', 'password', 'database'); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_conn
<?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);
?>
请告诉我我做错了什么,因为从这里我可以看到它的格式是正确的
<?php
//conection:
$link = mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($link));
//consultation:
$query = "SELECT name FROM mytable" or die("Error in the consult.." . mysqli_error($link));
//execute the query.
$result = $link->query($query);
//display information:
while($row = mysqli_fetch_array($result)) {
echo $row["name"] . "<br>";
}
?>
有几件事:
1.-你有两个疑问句,改变:
$result = $db->query($query) or die($db->error.__LINE__);
if ($result = mysqli_query($db, $query)) {
用这个
$result = $db->query($query) or die($db->error.__LINE__);
if ($result !== false) {
while ($row = mysqli_fetch_row($result)) {
print($row[0]); // You missed a $
}
2.-Yo在尝试打印变量时出错,更改:
while ($row = mysqli_fetch_row($result)) {
print(row[0]);
}
用这个
$result = $db->query($query) or die($db->error.__LINE__);
if ($result !== false) {
while ($row = mysqli_fetch_row($result)) {
print($row[0]); // You missed a $
}
为了从不同的表中获取数据,应该使用SQL联接。它非常方便,适合这种情况。printrow[0];应打印$row[0];,除非丢失的$只是复制/粘贴问题?还有,为什么你要查询两次->$result=$db->query$query&&$result=mysqli\u query$db,$query我希望我能接受你的评论作为答案,因为就是这样