簡體   English   中英

在PHP中連接多個數據庫並跨數據庫進行聯接查詢

[英]Connecting multiple database and join query across database in php

使用PHP我想跨2數據庫進行聯接查詢。

這是我的第一次聯系。

$conn = mysql_connect('localhost','root1','pass1'); 
@mysql_select_db('database1',$conn);

這是我的第二次聯系。

$conn1 = mysql_connect('localhost','root2','pass2'); 
@mysql_select_db('database2',$conn1);

如果我想從database1獲取數據,我正在做以下事情。

$sql = 'SELECT * FROM users';

$result = mysql_query($sql, $conn);

print_r(mysql_fetch_array($result));

對於第二個數據庫2

$sql = 'SELECT * FROM orders';

$result = mysql_query($sql, $conn1);

print_r(mysql_fetch_array($result));

但是當我如下進行聯接查詢時我遇到了問題

$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));

您可以通過在表名之前加上數據庫名稱來完成此操作,如示例中所建議的那樣。 但是,已登錄的用戶需要以相同的憑據訪問兩個數據庫。 最后一部分非常重要,否則您將無法做到。

這為您提供了一個簡單但直接的示例: 鏈接

從該鏈接獲取的示例(僅在具有相同憑據的情況下有效):

SELECT
    c.customer_name,
    o.order_date
FROM
    db1.tbl_customers c LEFT JOIN
    db2.tbl_orders o ON o.customer_id = c.id

php環境中的mysql模塊不支持多個數據庫連接,此外,該模塊僅出於追溯兼容的原因而存在。 你不應該使用它。

mysqliPDO更好,更完善(這些功能支持事務和帶預准備的語句,“ mysql”不支持),並且PDO還支持多數據庫查詢。

舊的mysql僅是過程性的,mysqli可用於過程和OO編程中,PDO是OOP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM