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