LAMP(PHP)使用ODBC和MDBTools驱动程序访问Access数据库

LAMP(PHP)使用ODBC和MDBTools驱动程序访问Access数据库,php,ms-access,odbc,lamp,mdbtools,Php,Ms Access,Odbc,Lamp,Mdbtools,有没有人能告诉我,在Ubuntu和PHP上使用unixODBC驱动程序对SQL的支持是否有限?我已经在Ubuntu11.10上安装了一个基本的lamp服务器,我正在尝试查询Access数据库。我已经安装了php5 odbc和MDB工具。以下是一些示例代码: <?php $conn = odbc_connect('logindb','',''); if (!$conn) { echo "failed"; } $sql = "SELECT * FROM class"; //$sql

有没有人能告诉我,在Ubuntu和PHP上使用unixODBC驱动程序对SQL的支持是否有限?我已经在Ubuntu11.10上安装了一个基本的lamp服务器,我正在尝试查询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);
}

?>


第一个查询,简单的select,工作得很好。但是,当尝试执行联接(第二个带注释的查询)时,我收到0条记录。我能够在Access中的SQL编辑器中成功运行SQL,因此我知道我的SQL是正确的,并且联接正在那里工作。有人有过这方面的经验吗?我知道Linux不能与微软的专有产品兼容,但不幸的是,我必须在Ubuntu上读取Access数据库。非常感谢您的帮助。

sourceforge上的mdbtools自2004年以来一直没有更新过。我看到有人把它放在github上,似乎做了一些小改动。它对SQL的支持从来并没有那个么好,它是只读的,根据我在Perl下使用DBD::ODBC尝试它的经验,我知道很多测试都失败了。我想你会很难受的

从Linux访问MS access数据库还有其他更可靠的方法,但据我所知,它们都是商业的。要从Linux访问MS access数据库,我知道以下几点:

Easysoft有一个ODBC-ODBC网桥(可以使用MS access ODBC驱动程序访问windows计算机上的MS access DB),但它需要在windows计算机上安装服务。Easysoft还有一个MS-Access-ODBC驱动程序,只要在Linux上可见,就可以直接访问mdb/accdb文件


Openlink还有其他商业ODBC网桥。

sourceforge上的mdbtools自2004年以来一直没有更新过。我看到有人把它放在github上,似乎做了一些小改动。它对SQL的支持从来并没有那个么好,它是只读的,根据我在Perl下使用DBD::ODBC尝试它的经验,我知道很多测试都失败了。我想你会很难受的

从Linux访问MS access数据库还有其他更可靠的方法,但据我所知,它们都是商业的。要从Linux访问MS access数据库,我知道以下几点:

Easysoft有一个ODBC-ODBC网桥(可以使用MS access ODBC驱动程序访问windows计算机上的MS access DB),但它需要在windows计算机上安装服务。Easysoft还有一个MS-Access-ODBC驱动程序,只要在Linux上可见,就可以直接访问mdb/accdb文件


Openlink还有其他商业ODBC网桥。

如果有人碰巧在寻找黑客解决方案,我最终使用mdb工具将access数据库转换为csv文件(每个表1个),然后在csv中迭代执行“手动”连接。这不是最好的解决方案,但它最终适用于相当小的表。希望有帮助

如果有人碰巧在寻找一个黑客解决方案,我最终使用mdb工具将access数据库转换为csv文件(每个表1个),然后在csv中迭代执行“手动”连接。这不是最好的解决方案,但它最终适用于相当小的表。希望有帮助