2011-04-04 17 views
2

我在Ubuntu10.10服務器上運行php5,其中unixODBC和php5-odbc包已經安裝。在連接過程中我不斷收到一個錯誤 - 代碼:php5連接到Visual FoxPro9表時odbc_connect()函數錯誤

$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 其中規定,爲了創建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文件指向驅動程序路徑......但我不知道。

+0

也看到這篇文章:http://stackoverflow.com/questions/5716492/php5-access-visual-foxpro-9-tables – sadmicrowave 2011-04-19 16:30:58

回答

0

雖然不熟悉linux連接到VFP,但是,這種VFP的odbc連接連接到PATH,而不是特定的表。一旦與PATH的連接有效,那麼您可以查詢該位置中的任何.DBF表。

雖然我不能回答你的具體的連接信息,我發現這個鏈接

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

這顯示了連接到數據源...注意到其標識「DRIVER = {微軟dBase驅動程序(* .DBF)};數據源= /家庭/目錄/ file.dbf;」使用...你可能不得不打這個驅動程序和路徑信息的組合(我仍然會先嚐試沒有特定的.dbf文件)。

希望這有助於...

+0

請參閱我的操作系統爲更新pregining您的建議 – sadmicrowave 2011-04-04 21:43:28

1

總之 - odbc_connect()需要; ODBC數據源名稱(DSN),用戶名密碼&按 -

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

據我所知是沒有VFP ODBC驅動程序用於Linux,所以你將最有可能,需要聘請一個ODBC橋的解決方案一樣 -

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

這有一個客戶機/服務器架構 -

Linux客戶端 - PHP ODBC應用程通貨膨脹 OpenLink公司通用ODBC驅動程序(薄多層ODBC客戶端)

的Windows服務器 - OpenLink的請求代理(多層服務器) OpenLink的代理ODBC(多層服務器) 福克斯臨ODBC DSN(預配置) Fox Pro文件...

我希望這有助於嗎?

+0

我相信VFP支持下dBASE驅動程序。這就是我的語法結構 - 還有哪些附加文件/ dll或php.ini擴展需要允許dBASE函數工作? – sadmicrowave 2011-04-05 12:39:54

+0

@sadmicrowave,我不能評論re:dBASE和VFP兼容性。 – 2011-04-06 12:30:50

+0

@sadmicrowave,可以這麼說,php的odbc_connect()函數會使用數據源名稱(DSN)或ODBC連接字符串(在發佈DRapp時DSN'less連接的情況下)。 您的根本問題是雙重的 - 1)您沒有提供DSN或連接字符串。 2)你沒有一個ODBC驅動程序一起安裝提供連接你需要 這是一個相當大的主題 - 太多的200級字符的響應,所以請隨時gbiggs @ openlinksw.com – 2011-04-06 12:38:40

1

退房此線程對MSDN network

最底部您發佈該驅動線是「......有一個版本,不支持VFP表的ODBC連接字符串晚於6」。

+0

郵寄我好的,謝謝爲了那個原因。那麼如果我使用不同的方法,如dBASE那麼呢? – sadmicrowave 2011-04-05 21:15:16

+0

取決於您正在使用的* nix版本。 Ubuntu並沒有默認帶有DBASE,所以你有一些apt-get和配置要做:[link] http://www.calipus.com/blogs/install-and-configure-php-dbase-ubuntu-1010 -and-PHP-5210 – Godzilla74 2011-04-05 21:39:59

相關問題