目前,我将使用两个查询来选择来自不同数据库的数据。
以下是代码中的主要部分..
从数据库1查询
mysql_select_db("data1");
mysql_select_db("data2");
//bought databases connected
$query1 = "select * from ex.1 where value1='".$value1."' and value2='".$value2."' order by number ASC;";
$run1 = mysql_query($query1);
从数据库2查询
$query2= " select * from ex.2 where value1='".$value1."' and value2='".$value2."' order by number ASC;";
$run2 = mysql_query($query2);
不同数据库中的两个表都将包含字符串"$value1"
和"$value2"
中的相同信息。
我想在一个查询中组合这两个字符串。这意味着将选择来自两个不同数据库的所有信息。
我尝试以下列方式使用JOIN:
$query = "select * from database1.ex.1 JOIN database2.ex.2 where value1='".$value1."' and value2='".$value2."' order by number ASC;";
$run = mysql_query($query);
但没有成功.. 从这一切的意义是,我想将mysql-data从两个不同的数据库回显到同一个表。
while ($row=mysql_fetch_array($run)){
echo '</tr><td>'.($row['something']).'</td><td>'.($row['more']).'</td><td>'.($row['and more']).'</td><td>'.($row['and more']).'</td><td>'.($row['and something from the database2']);
这样,所有信息都应该很好地回应,遵循从两个数据库中找到的几个字符串。
这可以理解吗?
答案 0 :(得分:0)
你有正确的连接部分,但你有条款而不是on:
$query = "SELECT * FROM database1.ex.1 as db1 JOIN database2.ex.2 as db2
ON(db1.value1='".$value1."' and db2.value2='".$value2."') order by number ASC;";
您可以为db2.whatever更改db1.value1 / db1.value2。
答案 1 :(得分:0)
不要将mysql_ *用于PHP脚本,而应该使用MySQLI,因为不推荐使用mysql。
$db = new mysqli(host, user, password, database;
您还应该将字符串转义为更安全,并检查连接是否也已成功:
$dbhost = "xxx.xxx.xxx.xxx";
$dbuser = "xxxxxxx";
$dbpass = "xxxxxx";
$dbbase = "xxxxxx";
$db = new mysqli($dbhost, $dbuser, $dbpass, $dbbase);
if($db->connect_errno) {
die('Could not connect to the database: ' . $db->connect_error);
}
您可以按照此操作重复多个数据库!