连接到Visual FoxPro9表时php5 odbc_connect()函数错误

时间:2011-04-04 21:30:43

标签: php linux odbc visual-foxpro

我在Ubuntu10.10服务器上运行php5,其中已经安装了unixODBC和php5-odbc软件包。我在连接过程中一直收到错误 - 代码:

$data_source = 'DRIVER={Microsoft dBASE Driver (*.dbf)};Data Source=//128.251.xxx.xxx/lv_apps/AppsLON/CData/dbf/cdma';"", "");
$conn = odbc_connect($data_source, "", "");
if (!$conn)
    exit("Connection Failed: " .$conn );

错误消息:

1 Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect in /var/www/vfptest.php on line 6 

我将extention=dbase.soextention=odbc.so添加到两个文件:/etc/php5/apache2/php.ini/etc/php5/cli/php.ini并重新编译php安装程序:

sudo ./configure --prefix=/usr --enable-dbase=shared --with-unixODBC

我还去unixODBC和pecl单独安装unixODBC和dbase库而没有运气。

我也找到了这个链接:http://www.devlist.com/ConnectionStringsPage.aspx 其中声明为了创建到foxpro数据库的ODBC连接,我使用以下行:

Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=c:\demo.dbc;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO 
然而,这对我来说仍然不起作用;可能是因为我没有安装visual foxpro驱动程序或我的odbc.ini文件指向驱动程序路径...但我不知道。

3 个答案:

答案 0 :(得分:1)

简而言之 - odbc_connect()需要; ODBC数据源名称(DSN),用户名和密码按照 -

http://php.net/manual/en/function.odbc-connect.php

据我所知,Linux没有VFP ODBC驱动程序,因此您很可能需要使用ODBC Bridge解决方案,如 -

http://uda.openlinksw.com/odbc-odbc-mt/

这有一个客户端/服务器架构 -

Linux客户端 -   php ODBC应用程序   OpenLink通用ODBC驱动程序(瘦多层ODBC客户端)

Windows服务器 -   OpenLink请求代理(多层服务器)   OpenLInk Agent for ODBC(多层服务器)   Fox Pro ODBC DSN(预配置)   Fox Pro文件......

我希望这有帮助吗?

答案 1 :(得分:1)

MSDN network

上查看此主题的最底部

您发布的驱动程序行是“...一个ODBC连接字符串,对于版本低于6的VFP表不支持。”

答案 2 :(得分:0)

虽然不熟悉linux连接到VFP,但是这种VFP的odbc连接连接到PATH,而不是特定的表。一旦与PATH的连接有效,那么您可以查询该位置的任何.DBF表。

虽然我无法回答您的具体连接信息,但我找到了此链接

http://www.phpfreaks.com/forums/index.php?topic=296832.0

显示连接到数据源...注意它标识'DRIVER = {Microsoft dBASE驱动程序(* .dbf)}; datasource = / home / dir / file.dbf;'使用过...你可能需要点击这个驱动程序和路径信息的组合(我还是先尝试没有特定的.dbf文件)。

希望这会有所帮助..