我在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=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文件指向驱动程序路径...但我不知道。
答案 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)
您发布的驱动程序行是“...一个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文件)。
希望这会有所帮助..