2015-09-18 51 views
0

我已經安裝了php5-odbc庫。PHP ODBC - 連接到本地.mdb數據庫

試圖連接到.mdb文件,但不斷收到錯誤找不到數據源名稱,並且沒有指定默認驅動程序

代碼:

$dbName = "../../../var/Import/PartsPlaceDB.mdb"; 
if (!file_exists($dbName)) { 
    die("Could not find database file."); 
} 
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;"); 

輸出:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified' in [...] 

PDO驅動程序:

foreach(PDO::getAvailableDrivers() as $driver) 
{ 
echo $driver.'<br />'; 
} 

輸出:

mysql 
odbc 
sqlite 
+1

這是已經在這裏回答http://stackoverflow.com/questions/18250755/connect-to-access-with -php –

+0

嘗試過但沒有運氣。不斷得到相同的錯誤。而錯誤信息是不同的。 – Yeken

+0

檢查phpinfo();確保你有PDO_ODBC –

回答

3

該問題與64位版本反覆出現。它看起來像你的代碼只適用於Windows 32位。 要解決該問題,您可以安裝此工具:Microsoft Access Database Engine 2010 Redistributable。幾個月來我遇到了同樣的問題,但這個工具解決了我的問題

+1

非常感謝!它也發生在我身上,我只是安裝了32位的apache版本,現在它就像一個魅力! :) – JFValdes

0

我猜你在做錯位置?

取而代之的是

$dbName = "../../../var/Import/PartsPlaceDB.mdb"; 

爲什麼不能做這樣的

$dbName = "..\..\..\var\Import\PartsPlaceDB.mdb";