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

Posted

技术标签:

【中文标题】在 Linux 上将 PHP 与 MS Access 2007-2010 连接【英文标题】:connect PHP with MS Access 2007-2010 on Linux 【发布时间】:2014-03-11 08:28:39 【问题描述】:

我有将 php 与 Microsoft Access 2007-2010 连接的代码,并且我使用的是 Linux 服务器 (Fedora)。

我的 Access db 文件与 index 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】:

当我在 WAMP 测试盒上运行您的代码时,出现以下错误:

致命错误:未捕获的异常 'com_exception' 带有消息 '来源: Microsoft OLE DB Provider for ODBC Drivers描述: [Microsoft][ODBC Microsoft Access Driver ] 找不到文件“(未知)”。在...

我改用这个来让它工作:

$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(又名com_dotnet),我很确定 COM/.NET 扩展仅适用于 Windows 服务器。

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

【讨论】:

那行不通。感谢您的尝试。同样的问题空白页。我在寡妇中尝试这个代码,我得到这个错误致命错误:找不到类'COM' @user3264926 如果您在 Windows 上收到“找不到类”错误,则表示尚未启用 COM/.NET 扩展。只需在 php.ini 中添加或取消注释 extension=php_com_dotnet.dll 行。 我正在做,我在 php.ini 中添加 extension=php_com_dotnet.dll,但我遇到了同样的问题

以上是关于在 Linux 上将 PHP 与 MS Access 2007-2010 连接的主要内容,如果未能解决你的问题,请参考以下文章

linux上将php加入环境变量

php 中的数据库连接与 Linux 主机上的 MS Access

无法在 ubuntu 11.1 上将 curl 与 PHP 一起使用

在 Linux 上将 Crashpad 与 Qt 集成

如何在 Linux / macOS 上将 Sass 与 NetBeans 一起使用

以编程方式在 Mac 上将 MS Access 导入 CSV