有人可以告诉我,如果在Ubuntu上使用unixODBC驱动程序的PHP支持有限吗?我在Ubuntu 11.10上设置了一个基本的灯服务器,我正在尝试查询Access数据库。我已经安装了php5-odbc和MDB Tools。以下是一些示例代码:
<?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条记录。我能够在Access中的SQL编辑器中成功运行SQL,所以我知道我的SQL是正确的,并且连接正在那里工作。有没有人有这方面的经验?我知道Linux并不是与专有的Microsoft产品兼容,但不幸的是我必须在Ubuntu上阅读Access数据库。非常感谢任何帮助。
答案 0 :(得分:3)
还有其他更可靠的方法可以从Linux访问MS Access数据库,但据我所知,这些都是商业广告。要从Linux访问MS Access数据库,我知道以下内容:
Easysoft有一个ODBC-ODBC Bridge(可用于使用MS Access ODBC驱动程序访问Windows机器上的MS Access DB),但它需要在Windows机器上安装服务。 Easysoft还有一个MS Access ODBC驱动程序,可以直接访问mdb / accdb文件,只要它在Linux上可见。
Openlink还有其他商业ODBC桥。
答案 1 :(得分:0)
如果有人正在寻找一个hacky解决方案,我最终使用mdb-tools将访问数据库转换为csv文件(每个表1个),然后迭代通过csv执行&#34;手册&#34 ;加入。不是最好的解决方案,但它最终适用于相当小的表。希望它有所帮助!