我需要通过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
有什么想法吗?
答案 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;");