【发布时间】:2015-03-14 07:22:37
【问题描述】:
我需要使用 PHP 在 Foxpro dbf 文件中进行记录搜索和显示。我的 dbf 文件名为 icitem.DBF,我正在使用 ODBC 和 OLEDB 方法,但都返回错误。
方法一: 我设法安装了 foxpro ODBC 驱动程序并创建了一个系统 DNS,下面是我的 php 脚本和输出。
php 脚本:
$odbc = odbc_connect ("myDB", "" , "");
$strsql= "SELECT * FROM icitem WHERE CAT=820";
$query = odbc_exec($odbc, $strsql) or die (odbc_errormsg());
odbc_close($odbc);
输出: 警告:odbc_exec(): SQL 错误:[Microsoft][ODBC Visual FoxPro Driver]无法打开文件 c:\xampp\htdocs\db\stock.dbc.,SQL 状态 S1000 在 C:\xampp\htdocs\hottemp\ 中的 SQLExecDirect 中第 9 行的 index.php [Microsoft][ODBC Visual FoxPro Driver]无法打开文件 c:\xampp\htdocs\db\stock.dbc。
方法二: 我在 http://www.microsoft.com/en-us/download/details.aspx?id=14839 安装了 Visual foxpro 9 的 microsoft ole db 提供程序
php 脚本:
$conn = new COM("ADODB.Connection") ;
$conn->Open('Provider=vfpoledb;Data Source=C:\xampp\htdocs\db;
Collating Sequence=machine;');
$query="SELECT * FROM icitem WHERE CAT=820";
$conn->Execute($query);
$conn->Close();
输出:
致命错误:未捕获的异常 'com_exception' 带有消息 '来源: Microsoft OLE DB Provider for Visual FoxPro
描述: 无法打开文件 c:\xampp\htdocs\db \stock.dbc。在 C:\xampp\htdocs\index.php:8 堆栈跟踪:#0 C:\xampp\htdocs\index.php(8): com->Execute('SELECT * FROM i...') #1 { main} 在第 8 行的 C:\xampp\htdocs\index.php 中抛出
看起来两个输出都需要 stock.dbc 而不是 icitem.dbf?我只有icitem.dbf 和icitem.fpt。
【问题讨论】: