欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php 读dbf,但是没有同名的cdx文件

程序员文章站 2022-06-05 17:09:19
...
php dbf cdx PHP读取文件夹下dbf文件,如果与其同名的cdx文件存在的话,读取没有问题,
但是如果只有独立的dbf文件,通过PHP读取,报错如下。。

$add='c://BatMan//Daten//ladertyp.DBF';
$e="Driver={Microsoft Visual FoxPro Driver};SourceType=DBf;SourceDB=".$add.";";
$odbc=odbc_connect($e,'','');

echo $add;
$query = "select * from ".$add.";";

$result_id = odbc_do($odbc, $query);
odbc_result_all($result_id, "border=1 width=50%");
odbc_close($odbc);
?>

报错如下。。
c://BatMan//Daten//ladertyp.DBF
Warning: odbc_do(): SQL error: [Microsoft][ODBC Visual FoxPro Driver]Not a table., SQL state S0002 in SQLExecDirect in C:\xampp\htdocs\dbf.php on line 9

Warning: odbc_result_all() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\dbf.php on line 10

请问下。。什么原因呢?又该如何解决呢??

回复讨论(解决方案)

不好意思,刚刚测试了另外一个文件,只有DBF文件,但是没有cdx文件,用同样的指令,可以打开。。

估计问题不是出在cdx文件下。。哪会是什么问题呢?

求大神指导啊!!急死了啊。。

CDX 文件是 dbf 的内联索引文件
如果本来有,后来删掉了,则 dbf 会打不开
你可以建一个空文件冒充

非常感谢你这么快就回复了。

我测试了下,还是不行。。同样的报错。。

如果不是CDX的问题,会是什么情况呢?

找到原因了。。是因为DBF文件类型不同,所用的VFP版本不同,而ODBC能够支持的最多就到7

后来使用ADODB外加VFP 的oledb驱动可以连接。。