2

我需要通过 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

有任何想法吗?

4

2 回答 2

4

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

$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".realpath($dbName));
于 2013-08-15T10:42:24.333 回答
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;");
于 2018-11-17T18:42:15.397 回答