数据库1:
<?php
$servername = "localhost";
$dbname = "root";
$dbpassword = "";
$name = "one";
$db_one = new mysqli($servername, $dbname, $dbpassword, $name);
if ($db_one->connect_error) {
die("We are likely experiencing a heavy traffic load, please come back later!");
}
?>
数据库2:
<?php
$servername = "localhost";
$dbname = "root";
$dbpassword = "";
$name = "two";
$db_one = new two($servername, $dbname, $dbpassword, $name);
if ($db_one->connect_error) {
die("We are likely experiencing a heavy traffic load, please come back later!");
}
?>
我尝试过的代码:
<?php require("db.php"); ?>
<?php //Select All Orders
$stmt = $db_one->prepare("SELECT * FROM `one`");
$stmt = $db_one->prepare("SELECT * FROM `one_table2`");
$stmt = $db_two->prepare("SELECT * FROM `two`");
$stmt->execute();
$result = $stmt->get_result();
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $one[] = "<tr><td>".$row["fromdbone"]."</td>";
echo $two[] = "<td>".$row["fromdbtwo"]."</td>";
echo $three[] = "<td>".$row["fromdbone_table2"]."</td></tr>";
}
}
$stmt->close();
?>
嘿大家我在这里不知所措,我究竟会怎样从不同的表和数据库执行多个查询,以便将它们全部放入一个表中?
非常感谢你的洞察力,我相信你比我聪明得多!
编辑:或者如果我要进行多重查询,我如何将它们全部放入一个HTML表格中?
谢谢,我一直试图解决这个问题几个小时,所以我希望你能帮忙!
答案 0 :(得分:0)
由于这两个数据库位于同一服务器(localhost)上,因此您无需为它们使用不同的连接。使用单个连接,并加入所有表。可以使用数据库前缀访问不在默认数据库中的表。
$stmt = $db_one->prepare("SELECT * FROM one AS o
JOIN one_table2 AS o2 ON o.id = o2.one_id
JOIN two.two AS t ON o.id = t.one_id");
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $one[] = "<tr><td>".$row["fromdbone"]."</td>";
echo $two[] = "<td>".$row["fromdbtwo"]."</td>";
echo $three[] = "<td>".$row["fromdbone_table2"]."</td></tr>";
}
}
$stmt->close();
要使用多个语句执行此操作,您需要绑定参数。
$stmt1 = $db_one->prepare("SELECT * FROM `one`");
$stmt2 = $db_one->prepare("SELECT * FROM `one_table2` WHERE one_id = ?");
$stmt3 = $db_two->prepare("SELECT * FROM `two` WHERE one_id = ?");
$stmt2->bind_param("i", $one_id);
$stmt3->bind_param("i", $one_id);
$stmt1->execute();
$result1 = $stmt1->get_result();
while ($row1 = $result1->fetch_assoc();
$one_id = $row['id'];
$stmt2->execute();
$result2 = $stmt2->get_result();
$row2 = $result2->fetch_assoc();
$stmt3->execute();
$result3 = $stmt3->get_result();
$row3 = $result3->fetch_assoc();
echo $one[] = "<tr><td>".$row1["fromdbone"]."</td>";
echo $two[] = "<td>".$row2["fromdbtwo"]."</td>";
echo $three[] = "<td>".$row3["fromdbone_table2"]."</td></tr>";
}
$stmt1->close();
$stmt2->close();
$stmt3->close();