0

我必须通过 PHP 建立与 Access 数据库的连接,但每次尝试时都会出现此错误:

致命错误:未捕获的异常“com_exception”

带消息:

'来源: Microsoft OLE DB
服务组件
描述: Das Format der Initialisierungszeichenfolge entspricht nicht den OLE DB-Angaben。在 E:\path\to\phpfile.php:93
堆栈跟踪:#0 E:\path\to\phpfile.php(93): com->Open('DRIVER={Microso...') #1 {主要}投入

德语文本的意思是“初始化字符串的格式在 OLE DB 语句中并不常见。

我的连接代码看起来像

$db = 'DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\") & ("\\db\\db.mdb") & ";"';
$conn = new COM("ADODB.Connection"); 
$conn->Open($db);

我不知道出了什么问题。在纯 ASP 中它可以正常工作,但在 PHP 中则不行。

提前致谢

4

2 回答 2

2

不要使用“ADODB.Connection”模块,而是使用 PDO,因为它是目前最好的选择并且是最佳实践,这里是文档: http: //php.net/manual/en/book.pdo.php

但是,如果 PDO 不适合您,那么请参阅 ODBC (PDO RECOMMENDED),它是一个原生 PHP 模块。这是文档: http: //php.net/manual/en/book.uodbc.php
要开始连接,您可以这样做: $connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

于 2013-02-05T17:04:53.810 回答
1

请改用PDO。它可以通过 ODBC 连接:

$pathToMDB = "path/to/db.mdb";
$db = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=$pathToMDB", 'admin');
于 2013-02-05T23:59:54.803 回答