在Linux上将PHP与MS Access 2007-2010连接

时间:2014-03-11 08:28:39

标签: php linux ms-access

我有代码将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;

?>

1 个答案:

答案 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服务器。

可能尝试使用unixODBCMDB Tools代替COM,但我不会自己推荐。如果您打算在Linux服务器上运行它,那么我建议您将数据库导出到MySQL或其他一些数据库平台,并在Linux上更好地支持PHP。