我需要使用 PHP 在 Foxpro dbf 文件中进行记录搜索和显示。我的 dbf 文件名为 icitem.DBF,我正在使用 ODBC 和 OLEDB 方法,但都返回错误。
方法1:我设法安装了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 in SQLExecDirect in C:\xampp\htdocs\ hottemp\index.php 在第 9 行 [Microsoft][ODBC Visual FoxPro 驱动程序]无法打开文件 c:\xampp\htdocs\db\stock.dbc。
方法 2:我在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。