Heim  >  Artikel  >  Backend-Entwicklung  >  php 读dbf,但是没有同名的cdx文件

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

WBOY
WBOYOriginal
2016-06-23 14:15:571657Durchsuche

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驱动可以连接。。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn