【问题标题】:unixODBC + mdbTools + PHPunixODBC + mdbTools + PHP
【发布时间】:2013-05-30 16:14:24
【问题描述】:

我需要将 LAMP(Linux Ubuntu 12.10、Apache 2、MySQL 5、PHP 5.3)服务器中的 PHP 脚本连接到 Access MDB 数据库(2003 版)。

1。 unixODBC 和驱动安装

Ubuntu 12.10 附带 unixodbc 2.2.14 软件包 (http://packages.ubuntu.com/quantal/unixodbc)。安装很简单:apt-get install unixodbc libmdbodbc1 php5-odbc。这样我就可以使用带有 mdbTools 驱动程序和 ODBC PHP 功能的 unixODBC。

我已经使用 mdbtools 驱动程序编辑了 /etc/odbcinst.ini:

[MDBToolsODBC]
Description = MDBTools Driver
Driver = libmdbodbc.so.1

我已经使用 Access 数据源编辑了 /etc/odbc.ini:

[FormPulmo]
Description = FormulariCDRPulmo
Driver = MDBToolsODBC
Servername = localhost
Database = /mnt/svrfit/cdr/bd_pulmo_hardlink.mdb
UserName =
Password =
port = 5432

最后我从 shell 中测试并且它工作了:

> isql -v formpulmo
Connected!

2。 PHP 连接

最初使用 PHP 似乎一切正常:

$link = odbc_connect ('formpulmo',"","");
$res = odbc_exec ($link,"SELECT * FROM exampleTable");

第一个问题是试图访问名称中带有空格的表。示例:“示例表”。在 Windows 中,我必须把它放在括号中([example Table]),但它没有用。终于找到了解决办法:

$res = odbc_exec ($link,"SELECT * FROM \"example Table\"");

在此解决方案之前,尝试执行 odbc_exec 的所有浏览器响应都是“错误 324 (net::ERR_EMPTY_RESPONSE)”

3。 PHP 问题!

但现在我坚持使用 UPDATE 语法。正常的查询是:

$res = odbc_exec ($link,"UPDATE [Registre cancer de pulmo] SET CIP = 'example' WHERE CIP = 'example'");

浏览器响应为:“Error 324 (net::ERR_EMPTY_RESPONSE)”(在 Firefox 中:“连接已重置”)。

3.1。尝试过的解决方案

UPDATE \"Registre cancer de pulmo\" SET CIP = 'example' WHERE CIP = 'example'
UPDATE \"Registre cancer de pulmo\" SET \"CIP\" = 'example' WHERE \"CIP\" = 'example'
UPDATE {Registre cancer de pulmo} SET {CIP} = 'example' WHERE {CIP} = 'example'

连接不同的光标:

odbc_connect ($odbcFormPulmo,"","",SQL_CUR_USE_ODBC);
odbc_connect($odbcFormPulmo,"","",SQL_CUR_USE_DRIVER);

我不知道我还能尝试什么:-(

【问题讨论】:

标签: php ms-access ubuntu odbc unixodbc


【解决方案1】:

几周前响应this question,我对与您的设置几乎相同的设置进行了一些测试(Ubuntu 12.04 而不是 12.10),发现我根本无法让mdbtools 工作。我认为一些人可以有时将它用于某种工作,但 IMO mdbtools 对于生产使用来说不够可靠。 p>

my answer 中,我建议调查ODBTP 作为替代方案。它是一个免费的 (GPL) TCP/IP 协议,允许您将查询传递给 Windows 计算机,然后 Windows 计算机通过其 ODBC 驱动程序提交查询并将结果传回给您。我过去用过几次,效果很好。

【讨论】:

  • 成功了,谢谢!这个解决方案并不完美,因为它依赖于 Windows 机器,但总比没有好。希望有一天我们会有一个好的免费 odbc/mdb 驱动程序。
  • 嗨,我同意...尝试使用 MDBTools 运行简单的插入并得到“SQL 错误:无法解析 SQL”错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 2012-05-22
  • 2016-03-17
相关资源
最近更新 更多