LAMP(PHP)访问Access数据库的ODBC与MDBTools驱动程序(LAMP (PHP)

2019-09-16 10:37发布

谁能告诉我,如果有使用的unixODBC驱动程序在Ubuntu上用PHP有限的SQL支持? 我设置在Ubuntu 11.10基本灯服务器,我想查询一个Access数据库。 我已经安装PHP5-ODBC和MDB工具。 下面是一些示例代码:

<?php

$conn = odbc_connect('logindb','','');

if (!$conn) {
   echo "failed";
}

$sql = "SELECT * FROM class";
//$sql = "SELECT class.desc, event_classes.event_class_id FROM class inner join
//event_classes on class.class_id = event_classes.class_id";

$rs = odbc_exec($conn, $sql);

while ($d = odbc_fetch_array($rs)) {
    var_dump($d);
}

?>

第一个查询,简单的选择,工作得很好。 然而,试图执行联接(第二评论查询)时,我得到0的记录。 我能在中访问SQL编辑器成功运行SQL,所以我知道我的SQL是正确的,并且连接是在那里工作。 有没有人有这方面的经验? 我知道Linux的不是做成专利微软产品兼容,但不幸的是我必须让阅读在Ubuntu上工作的Access数据库。 任何帮助是极大的赞赏。

Answer 1:

sourceforge上mdbtools自2004年以来我看到有人已经把它在github上,似乎已经取得了一些小的改动尚未更新。 在它的SQL支持,从来没有那么好,它是只读的,据我的经验与DBD :: ODBC的Perl下尝试了很多的测试失败。 我认为你将有一个很难用它。

有访问来自Linux的一个MS Access数据库的其他更为可靠的办法,但他们都是我的知识商业化。 要访问Linux上的MS Access数据库中,我知道了以下内容:

斯软件有一个ODBC-ODBC桥(可用于访问使用MS Access ODBC驱动程序在Windows机器上的一个MS Access数据库),但它需要在Windows机器上安装服务。 斯软件也有一个MS Access ODBC驱动程序可以,只要它是在Linux可见用于直接访问MDB / ACCDB文件。

还有来自OpenLink在其他商业ODBC桥。



Answer 2:

如果有人碰巧寻找一个哈克解决方案,我结束了使用mdb的工具来访问数据库转换为CSV文件(每个表),然后通过迭代CSV进行“手动”加入。 不是最好的解决办法,但它结束了对非常小的表工作。 希望能帮助到你!



文章来源: LAMP (PHP) accessing Access Database with ODBC with MDBTools Driver