2017-04-27 101 views
0

由於某些原因,我需要在我的PHP應用程序中使用ms-access,因此我已在WAMP中啓用php_pdo_odbc擴展。其中顯示在phpinfo()使用ODBC創建使用msaccess的PHP PDO連接時發生致命錯誤

但我無法連接數據庫,它會返回以下錯誤。

(!) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified' in C:\wamp64\www...\portals...\config.php on line 15

(!)> PDOException: SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified in C:\wamp64\www...\portals...\config.php on line 15

$db_username = ''; //username 
$db_password = ''; //password 

//path to database file 
$database_path = "StudentLogInData.mdb"; 

//check file exist before we proceed 
if (!file_exists($database_path)) { 
    die("Access database file not found !"); 
} 

//create a new PDO object 
$database = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=realpath($database_path); Uid=$db_username; Pwd=$db_password;"); 

我使用的是Windows 7中(64位)WAMP 64位版本。搜索了很多Stackoverflow的解決方案,例如嘗試運行32位版本,但無法安裝在64位上。請幫助如何使其工作?

回答

2

realpath()是一個PHP函數,而不是ODBC驅動程序理解的東西。你可能想從DSN刪除:

$database_path = realpath("StudentLogInData.mdb"); 
$database = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$database_path; Uid=$db_username; Pwd=$db_password;"); 

隨着對驅動程序的名稱,你需要在你開始菜單鍵入ODBC和驗證給定的名稱是在您所在驅動程序標籤:

ODBC Manager

+0

完成。但同樣的錯誤,並且也嘗試了DSN字符串中的完整路徑,但同樣的錯誤。我覺得這必須是64位版本。 – yaqoob

+1

嗯,很抱歉,我以爲您已經安裝了提供「Microsoft Access驅動程序(* .mdb,* .accdb)」的驅動程序:https://www.microsoft.com/zh-CN/download/details.aspx ?id = 13255 –

+0

我已經安裝並重新啓動機器,但仍然是相同的錯誤。我檢查了驅動程序選項卡,我沒有列出MS Access。截圖http://imgur.com/a/l4hCL – yaqoob