在企業級應用中,數據往往分散在多個 Access 資料庫文件(.mdb/.accdb)中。PHP 透過 ADO/ODBC 連接 Access 時,可利用 Access 自身的跨資料庫查詢語法,在單次 SQL 中完成多庫表關聯。本文詳細解析該技術的實現原理與代碼範例。
假設有兩個獨立的 Access 資料庫:
需求:以「裝材類型.BH」關聯「裝材.LXBH」,一次查詢獲取所需記錄集。
SELECT * FROM 裝材類型 AS a INNER JOIN [;database=路徑/裝材.zc].裝材 AS b ON a.BH = b.LXBH
[;database=路徑;pwd=密碼]:中括號內指定外部資料庫路徑與可選密碼。路徑:可使用相對路徑或絕對路徑(如 AppDomain.CurrentDomain.BaseDirectory)。pwd=密碼:若目標資料庫有開啟密碼,需在此指定。<?php
// 假設使用 PDO_ODBC 連接主資料庫
$dsn = "odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:/data/main.mdb;";
$pdo = new PDO($dsn);
$sql = "SELECT a.*, b.*
FROM [裝材類型] AS a
INNER JOIN [;database=C:/data/裝材.zc].裝材 AS b
ON a.BH = b.LXBH";
$stmt = $pdo->query($sql);
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $row) {
// 處理業務邏輯
print_r($row);
}
?>
/ 或雙反斜線 \\\\。iconv 或 mb_convert_encoding 轉換。掌握 Access 跨庫查詢,能在不遷移數據架構前提下,快速滿足多源數據整合需求。