我正在尝试通过ODBC连接数据库,而我通过Google /互联网找不到任何帮助。
我们的ERP使用OMNIS作为框架,它提供了一个ODBC驱动程序,用于在程序之外查询OMNIS的专有数据库。我已经创建了驱动程序和DSN,但我无法开始使用PHP操作数据或发送查询。
驱动程序在ODBC连接管理器中显示为“OMNIS ODBC Driver” - 我尝试了很多连接字符串,但似乎无法实现。
DSN位于C:\ Test.dsn。再次,驱动程序显示为OMNIS ODBC驱动程序。非常感谢任何帮助。
答案 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