2016-08-04 56 views
1

我怎樣才能使用多個數據庫(arround 30)連接使用msqli_query()。 我的查詢喜歡$query = msqli_query($conn,"select * from user where province_id = '5'")。 所以,現在在這裏,我想用功能帶開關的情況下如何使用mysqli_query使用多個數據庫?

在所有情況下,$值下面的代碼使用$康恩所有數據庫從一個數組....

function allDatabase($value) { 
switch ($value) { 
case "1": 
    $conn = new mysqli("localhost", "root", "", "$db"); 
    return $conn; 
    break; 
case "2": 
    $conn = new mysqli("localhost", "root", "", "$db1");  
    return $conn; 
    break; 
case "3": 
    $conn = new mysqli("localhost", "root", "", "$db2");  
    return $conn; 
    break; 
case "4": 
    $conn = new mysqli("localhost", "root", "", "$db3");  
    return $conn; 
    break; 
default: 
    echo ""; 
} 
} 

發現我做不到在我的查詢中使用所有數據庫.... 那麼我們如何才能在我的查詢中獲得所有連接並從所有數據庫中獲取結果。 簡而言之,'希望所有用戶在一個查詢中使用所有數據庫'。

在此先感謝

+0

每一件事情,除了'msqli_query'錯字這裏 – Saty

+0

但我不查詢獲取所有數據庫的結果正確的。它僅爲當前數據庫中的所有用戶提供 – Isha

+0

分配的是$ db嗎?看起來不在這裏;或範圍之外。 – chris85

回答

0

使用

function makeConnection($dbName) { 
    $conn = new mysqli("localhost", "root", "", "$dbName"); 
    return $conn; 
} 

$allResult = array(); 

foreach ($arr as $key=>$value) { 
    $conn = makeConnection($value); 
    $query = msqli_query($conn,"select * from user where province_id = '5'"); 
    $result = fetchDataFromSqlArray($query); 
    $allResult = array_merge($allResult, $result); 
} 
+1

@isha ..是的。這是你如何做到的。如果每個數據庫的用戶名和密碼都不相同,則可以將「$ arr」定義爲具有db名稱,用戶名和密碼的多維數組,然後可以在此for循環中使用它們。 – user10

+0

我們可以通過for循環來替換foreach循環,我希望那裏有$ i的province_id而不是$ key。查詢應該執行$ i時間。 我試過for循環,但它沒有正常工作.... – Isha

+0

是的,你可以。在此輸入確切的查詢。我會很樂意幫助 –