我有代码将PHP连接到Microsoft Access 2007-2010,我使用的是Linux服务器(Fedora)。
My Access db文件与索引php页面位于同一文件夹中 但是当我尝试加载页面时,我得到的只是一个空白页面。
这是我的index.php页面:
<?php
$db = 'test.mdb';
$conn = new COM('ADODB.Connection') or exit('Cannot start ADO.');
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db") or exit('Cannot open with driver.');
$sql = 'SELECT first, second, last FROM t1 ORDER BY id';
$rs = $conn->Execute($sql);
?>
<table>
<tr>
<th>Product Name</th>
<th>Quantity Per Unit</th>
<th>Unit Price</th>
</tr>
<?php while (!$rs->EOF) { ?>
<tr>
<td><?php echo $rs->Fields['first']->Value ?></td>
<td><?php echo $rs->Fields['second']->Value ?></td>
<td><?php echo $rs->Fields['last']->Value ?></td>
</tr>
<?php $rs->MoveNext() ?>
<?php } ?>
</table>
<?php
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>
答案 0 :(得分:0)
当我在WAMP测试盒上运行你的代码时,我收到以下错误:
致命错误:未捕获的异常'com_exception',消息'源:用于ODBC驱动程序的Microsoft OLE DB提供程序
描述: [Microsoft] [ODBC Microsoft Access驱动程序]找不到文件'(未知)'。'在......
我通过使用它来实现它的工作:
$db = $_SERVER["SCRIPT_FILENAME"] . '/../test.mdb';
$conn = new COM('ADODB.Connection') or exit('Cannot start ADO.');
try {
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
} catch (Exception $e) {
exit('Cannot open with driver: <br/>' . $e->getMessage());
}
<强>然而... 强>
如果您在Linux机器上执行代码,我不确定它会对您有所帮助。您正在尝试使用COM
(a.k.a。com_dotnet
),我非常确定COM / .NET扩展仅适用于Windows服务器。
你可能尝试使用unixODBC
和MDB Tools
代替COM
,但我不会自己推荐。如果您打算在Linux服务器上运行它,那么我建议您将数据库导出到MySQL或其他一些数据库平台,并在Linux上更好地支持PHP。