微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

连接到Visual FoxPro9表时,出现php5 odbc_connect函数错误

我在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.so和extention=dbase.so extention=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在那里说,为了创build一个ODBC连接到一个FoxPro数据库我使用的行:

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文件指向驱动程序path…但我不知道。

总之 – 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 ODBC(多层服务器)代理Fox Pro ODBC DSN(预配置)Fox Pro文件

我希望这有帮助?

查看MSDN网络上该线程的最底部

您发布的驱动程序行是“…一个ODBC连接字符串不支持VFP表具有晚于6的版本。

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

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

http://www.PHPfreaks.com/forums/index.PHP?topic=296832.0

显示连接到一个数据源…注意它识别'DRIVER = {Microsoft dBASE Driver(* .dbf)}; datasource = / home / dir / file.dbf;' 使用…你可能不得不打这个驱动程序和路径信息的组合(我仍然会先尝试没有具体的.dbf文件)。

希望这可以帮助..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐