KuK*_*uKu 2 php mysql database
使用php我想在2个数据库中进行连接查询.
这是我的第一次联系.
$conn = mysql_connect('localhost','root1','pass1');
@mysql_select_db('database1',$conn);
Run Code Online (Sandbox Code Playgroud)
这是我的第二个联系.
$conn1 = mysql_connect('localhost','root2','pass2');
@mysql_select_db('database2',$conn1);
Run Code Online (Sandbox Code Playgroud)
如果我想从database1获取数据,我正在做以下事情.
$sql = 'SELECT * FROM users';
$result = mysql_query($sql, $conn);
print_r(mysql_fetch_array($result));
Run Code Online (Sandbox Code Playgroud)
第二个数据库2也是如此
$sql = 'SELECT * FROM orders';
$result = mysql_query($sql, $conn1);
print_r(mysql_fetch_array($result));
Run Code Online (Sandbox Code Playgroud)
但是当我正在进行如下连接查询时,我正面临着问题
$sql = 'SELECT a.fname AS fname, a.lname AS lname FROM database1.users a JOIN database2.orders b ON b.creator_id = a.id';
$result = mysql_query($sql);//what should be second parameter over here.
print_r(mysql_fetch_array($result));
Run Code Online (Sandbox Code Playgroud)
您可以通过在表名前加上数据库名称来执行此操作,就像您在示例中提到的那样.但是登录用户需要在相同凭据下访问这两个数据库.最后一部分非常重要,否则你将无法做到.
这为您提供了一个简单但直截了当的示例:链接
从该链接获取的示例(仅使用相同的凭据):
SELECT
c.customer_name,
o.order_date
FROM
db1.tbl_customers c LEFT JOIN
db2.tbl_orders o ON o.customer_id = c.id
Run Code Online (Sandbox Code Playgroud)