Php 如何连接到两个数据库
我正在尝试连接到两个数据库,为我的两个数据库创建一个搜索引擎。这是一个测试代码。有人能告诉我我做错了什么,或者这是否可能。谢谢Php 如何连接到两个数据库,php,mysql,Php,Mysql,我正在尝试连接到两个数据库,为我的两个数据库创建一个搜索引擎。这是一个测试代码。有人能告诉我我做错了什么,或者这是否可能。谢谢 mysql_connect("localhost","user","pass"); mysql_select_db("db1"); mysql_select_db("db2"); $search=mysql_query("SELECT * from db1.repairs, db2.order from db1,db2"); while($row=mysql_fetc
mysql_connect("localhost","user","pass");
mysql_select_db("db1");
mysql_select_db("db2");
$search=mysql_query("SELECT * from db1.repairs, db2.order from db1,db2");
while($row=mysql_fetch_array($search)){
echo $row['first_name']." ".$row['esn']." ".$row['order_type']."<br>";
}
mysql_-connect(“localhost”、“user”、“pass”);
mysql_select_db(“db1”);
mysql_select_db(“db2”);
$search=mysql_query(“SELECT*from db1.repairs,db2.order from db1,db2”);
while($row=mysql\u fetch\u数组($search)){
echo$row['first_name']。.$row['esn']。.$row['order_type']。
;
}
返回一个$resource
。您可以连接两次,然后用每个数据库选择一个数据库(实际上,您可以从连接本身中选择一个数据库),然后使用每个连接
但是,您的问题是您的选择不正确。您试图从数据库的表中选择字段,这是不正确的。事实上,您无法以如此奇特的方式获取两个不同的数据库,因为它们被视为两组独立且不相关的信息。这就是为什么存在表格,以解决这个问题
然而,答案可能有一个解决方案
否则,您可以使用两个mysql\u connect
和两个资源连接到每个数据库,获取值,然后自己进行交叉。我知道这不是最好的选择,而是一个适合你需要的答案
PS:如果你现在就开始这个项目,切换到Mysqli或PDO。Mysql已弃用。如果在表名之前指定数据库名,则可以跨数据库进行查询,如下所示
SELECT a.col1, b.col2
FROM db1.table1 AS a
INNER JOIN db2.table2 AS b ON a.someIdFromA = b.someIdFromB
正如Korcholis提到的,问题在于你的选择。如果可以避免,您也不想使用mysql.*
函数。首选PDO或MySqli
编辑
至少在使用MySQL时是这样。我敢打赌它也适用于大多数其他RDBMS,但我手头上没有其他RDBMS可供测试,我也不能说它是否符合SQL标准。有人评论吗?您可以使用
<?php
$db1 = mysql_connect("localhost","user","pass");
$db2 = mysql_connect("remote","user","pass");
mysql_select_db("db1", $db1);
mysql_select_db("db1", $db2);
$query1 = mysql_query("USE somedatabase", $db1);
$query2 = mysql_query("USE otherdatabase", $db2);
试着回顾一下,也许你不能通过从
查询来查询数据库:
<?php
$con1 = mysqli_connect("$hostname", "$user1", "$password1", "$db1");
if (mysqli_connect_errno($con1)) {
echo mysqli_connect_error();
}
$con2 = mysqli_connect("$hostname", "$user2", "$password2", "$db2");
if (mysqli_connect_errno($con2)) {
echo mysqli_connect_error();
}
$search1 = mysqli_query($con1, "SELECT * from $db1table");
$search2 = mysqli_query($con2, "SELECT * from $db2table");
/* Other PHP codes here */
mysqli_close($con1);
mysqli_close($con2);
?>
您甚至可以改进此代码,也不能最小化它 如果您的问题已解决,请接受其中一个答案,并对所有有用的答案(包括已接受的答案)进行投票。如果您需要任何额外的澄清,请随意评论答案。我喜欢这个,但我没有测试它,也许,我不愿意,因为这不是正确的方式。。