使用PHP连接到Access

时间:2013-08-15 10:24:24

标签: php database ms-access

我需要通过PHP连接到Access数据库。

我在php.ini文件中取消注释“extension = php_pdo_odbc.dll”。 我把数据库放在与我想要连接的.php文件相同的文件夹中。

到目前为止我的代码:

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

我的错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] SQLDriverConnect: -1811 [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.' in C:\xampp\htdocs\Test\index.php:40 Stack trace: #0
C:\xampp\htdocs\Access_Test\index.php(40): PDO->__construct('odbc:DRIVER={Mi...') #1 {main} thrown in C:\xampp\htdocs\LAWsites\Access_Test\index.php on line 40

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

数据库位置参数(DBQ)需要数据库文件的绝对路径:

$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".realpath($dbName));

答案 1 :(得分:0)

当访问数据库位于同一文件夹中时,我遇到类似的错误。

SQLSTATE[HY000] SQLDriverConnect: -1044 [Microsoft][ODBC Microsoft Access Driver] Not a valid file name.

我在文件名前面加上了“ ./”,它可以正常工作。

$handler = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=./CIDB.MDB;");