> 백엔드 개발 > PHP 튜토리얼 > php 读dbf,但是没有同名的cdx文件

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

WBOY
풀어 주다: 2016-06-23 14:15:57
원래의
1685명이 탐색했습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿