带有模糊驱动程序的PHP的ODBC连接字符串

时间:2010-06-02 18:08:55

标签: php odbc

我正在尝试通过ODBC连接数据库,而我通过Google /互联网找不到任何帮助。

我们的ERP使用OMNIS作为框架,它提供了一个ODBC驱动程序,用于在程序之外查询OMNIS的专有数据库。我已经创建了驱动程序和DSN,但我无法开始使用PHP操作数据或发送查询。

驱动程序在ODBC连接管理器中显示为“OMNIS ODBC Driver” - 我尝试了很多连接字符串,但似乎无法实现。

DSN位于C:\ Test.dsn。再次,驱动程序显示为OMNIS ODBC驱动程序。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

答案:

这些说明假定已在主机服务器上设置了Apache Web服务器。

操作系统:Windows Server 2003 Web服务器:Apache 2(WAMP www.wamp.com)

1。 下载并安装适用于Windows非Unicode驱动程序的Omnis ODBC驱动程序(http://www.tigerlogic.com/tigerlogic/omnis/download/tools.js

2。 为您的数据文件创建SYSTEM数据源:      - 开始菜单>管理工具>数据源      - 选择“系统DSN”选项卡      - 点击添加      - 从驱动程序列表中选择“Omnis ODBC Driver”      - 点击完成      - 填写数据源名称,描述和身份验证凭据     重要提示:请记住数据源名称。这是将用于连接到数据库的数据源的名称。      - 选择数据文件。     -保存      - 数据源现已在操作系统中注册,可以使用。

3。 在Web根目录中,创建一个新文件名odbc_test.php。

使用以下示例代码测试数据连接。

<?php

/*My data source is named PFDSN, so that is what I will be using in this example
   Make sure you use the exact name of the data source created in step 2.
*/
$conn = odbc_connect('PFDSN',' ',' ');  //the connection to the data file
$sql = 'select * from INVOICES';    //query string
$result = odbc_exec($conn,$sql); //execute the query
$while($data[] = odbc_fetch_array($result)); //loop through the result set
odbc_free_result($result); //unallocate the result set
odbc_close($conn); //because this is good practice

print_r($data);
?>

保存并关闭文件。 导航到http://localhost/odbc_test.php(或文件所在的位置)。

如果连接成功,页面将显示从发票表中提取的所有数据的转储。

如果不起作用,请检查以确保连接字符串中包含正确的DSN名称 如果连接字符串是正确的并且它仍然不起作用,则PHP可能未配置ODBC模块。但是,您应该注意,自PHP 5(在Windows中)以来,默认情况下启用ODBC模块。

可悲的是,在撰写本文时,Tiger Logic没有提供Linux / Unix ODBC驱动程序。希望他们能够理解并意识到Windows很糟糕。

结束。

答案 1 :(得分:1)

我最终开始将数据库克隆到SQL并使用该方法。尝试让OMNIS ODBC驱动程序正常运行真是太痛苦了。

答案 2 :(得分:0)

我能够使用这样的DSN进行连接:

odbc:DRIVER=OMNIS;DataFilePath=C:\import\average.df1