PHP 链接DBF

WBOY
Release: 2016-06-23 14:13:34
Original
1717 people have browsed it

PHP DBF LAN

在本地电脑安装ODBC驱动,PHP 链接DBF文件。。

如果文件是放在本地磁盘上,只要输入c:\BatMan\Daten\histwech.dbf即可使用,
但是如果要链接局域网里面其他电脑上的DBF文件,应该如何定义这个文件的绝对路径呢?

求大神指导。。

PS ..上次有位大神说如此就写\\pc69\c$\xxx.dbf ,测试了无效果啊,PC69是局域网内电脑的名字,我们是应该使用名字还是该使用IP地址呢?为什么用这个方式连接本地磁盘不行呢。。假设本机叫pc70..如果这样写
$add='\\pc70\c$\BatMan\Daten\histwech.dbf';
报错如下>Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Visual FoxPro Driver]Fox Error 1, SQL state S1000 in SQLConnect in C:\AppServ\www\batman\batmanliste.php on line 34

Warning: odbc_exec(): supplied argument is not a valid ODBC-Link resource in C:\AppServ\www\batman\batmanliste.php on line 132
求大神解释下啊。。

回复讨论(解决方案)

你的链接文件源码拿出来看看??

$add='\\\\192.168.1.70\c$\BatMan\Daten\histwech.dbf';
$e="Driver={Microsoft Visual FoxPro Driver};SourceType=DBf;SourceDB=".$add.";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO;";
$odbc=odbc_connect($e,'','');

本地机子IP地址是192.168.1.70 本地磁盘是c 或者D 。。这样写都是可以的。。

但是局域网内例如 PC69, IP地址是192.168.69 磁盘也是C。。
这样写$add='\\\\192.168.1.69\c$\BatMan\Daten\histwech.dbf';就不可以。。

再着,我在自己电脑上进行了局域网连接,把\\PC69\C创建为Y: 然后尝试把$add='\\\\192.168.1.70\Y$\BatMan\Daten\histwech.dbf';这样也是不行。。。

求大神快帮忙啊。。

同一资源定位:
//主机名/共享名/路径/文件名

//IP/共享名/路径/文件名

你原来的 C$ 是假定 C 盘没有做显式的共享,而直接取系统默认的共享名
你可以在命令行或vfp中这样使用,但不一定能在 php 中这样使用
这取决于 php 编译时的开关状态

你或许需要在 php 服务器上对其他机器上的 dbf 做 ODBC 数据源创建


大神,我看不懂你说的啊。。
急死的了。。

什么是同一资源定位啊?什么又是共享名呢??
如果我必须要用PHP连接呢?到底该怎么写啊?

我只是想读取局域网内其他机子上的dbf文件、我的报错在odbc_connect上都是OK的。但是在读取sql语句的时候报错!并且都是说找不到文件,所以我觉得应该是SourceDB的书写上面有错误。。但是我又不会写啊。

求介绍啊!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template