使用PHP和mysqli从多个MySQL表获取数据

使用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

我试图从多个表中提取数据,这些表已被索引以相互关联。我在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);
?>
请告诉我我做错了什么,因为从这里我可以看到它的格式是正确的

<?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我希望我能接受你的评论作为答案,因为就是这样