当我第一次阅读mysqli_connect()
时,我认为我们只能对作为mysqli_connect()
的参数传递的数据库执行sql操作,但今天我只是尝试一下,是吗?可以在我的本地服务器上对两个不同数据库的表执行连接操作。所以我创建了另一个数据库(db_2)。令人惊讶的是它有效。
我尝试使用Google搜索此主题,但我找到了与mysql_connect()
和mysql_select_db()
相关的旧答案。只需看看我的代码
$host="localhost";
$username="root";
$password="";
$db_name="db_1";
$con = mysqli_connect($host,$username,$password,$db_name);
$sql_query = "SELECT name FROM db_1.user as u inner join
db_2.user as us ON us.id = u.id
WHERE u.id = 102 LIMIT 1";
$result = mysqli_query($con,$sql_query);
$row = mysqli_fetch_array($result, MYSQL_ASSOC);
echo $row['name'];
最初我认为我们应该与两个数据库建立两个连接,这样就可以使用两个数据库
$con1 = mysqli_connect($host,$username,$password,"db_1");
$con2 = mysqli_connect($host,$username,$password,"db_2");
但只使用单一连接很容易在两个数据库之间获取数据。
我的问题是加入两个数据库的正确方法吗?我知道PDO是更好的方式,但出于好奇只是想知道。
还有任何限制吗?当我拥有庞大的数据时,这是首选方式。
当您在两个数据库之间获取数据时,它是否真的会降低性能,或者它很少。任何帮助是极大的赞赏。感谢
答案 0 :(得分:0)
如果两个数据库都在同一台服务器上,并且您正在使用的用户可以访问这些数据库。您应该可以将这样的查询放在一起......
SELECT db1.table1.column1, db2.table2.column2 FROM db1.table1 JOIN db2.table2 ON db1.table1.column1 = db2.table2.column2;