2012-01-21 46 views
1

我正在設計一個使用PHP和MySQL的網站。對於我從多個來源獲取數據的網頁。現在,我將這些數據傳遞給許多網頁常用的函數。使用數據的函數再次查詢數據庫並生成獲得的結果。問題是,通用函數並沒有隱式引用任何數據庫。因爲,我傳遞的數據將來自兩個數據庫中的一個,函數僅查找數據庫中的數據,並在數據庫不可用時返回null。現在,如果我修改了在兩個數據庫中搜索的函數,還有其他頁面會受到影響。我想知道是否有相同的解決方法?將來自多個數據源的數據傳遞給一個通用函數

回答

0

您可以UNIONDOCs跨兩個數據庫例如:

SELECT id, title FROM database_one.table_name WHERE id = $id 
UNION 
SELECT id, title FROM database_two.table_name WHERE id = $id 

這會給你兩個SQL語句的結果在一個查詢。通過這種方式,您將從兩個數據庫中的兩個表中獲取與您的標準相匹配的所有記錄。

UNION要求兩個語句返回相同數量的列,這就是爲什麼我指定它們而不使用通配符*

如果您想確保只獲取唯一記錄(同一記錄可能出現在兩個數據庫中),那麼您可以使用DISTINCT修飾符。