无法通过PHP连接到Access数据库

时间:2013-02-05 16:52:12

标签: php ms-access connection-string

我必须通过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->打开('DRIVER = {Microso ...')#1 {main}抛出

德语文本意味着“初始化字符串的格式不是OLE DB语句的通用。

我的连接代码类似于

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

我无法弄清楚出了什么问题。在纯ASP中,它可以正常工作,但不能在PHP中工作。

提前致谢

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

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

$pathToMDB = "path/to/db.mdb";
$db = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=$pathToMDB", 'admin');