我正在寻找一个代码片段/库,通过网络使用来自Linux服务器的php/Java从第三方foxpro数据库中读取数据.有没有图书馆?有些人似乎正在使用Dbase库进行php?那样有用吗?
除了默认值(数据库名,用户名,密码)之外,我还需要Foxpro DB中的哪些参数.DBF名称,连接字符串??
不久前,我正在研究相同的解决方案,并打了很多死胡同.我想要一个与PHP一起工作的解决方案.
我尝试的其中一些是
1. Xbase驱动程序:它们适用于简单的DBF,但是它们不支持像DateTime字段这样的新数据类型,因此该选项被排除在外.
2. VFP ODBC驱动程序:如果您正在使用较旧的VFP版本,这很有效,因为此版本的开发已经停止,并且它不支持较新的自动增量字段,并且您不断遇到奇怪的错误,例如"不是表",这会导致您完成疯."VFP ODBC驱动程序不支持具有自动增量字段的表"
3. 商业工具:还有许多其他商业选项显然不适合我
4. 免费工具(DBF到CSV)将DBF转换为csv或类似,但如果你只做select,这将工作.你不能做任何更新.
最后一个对我有用的选项是: Visual Foxpro OLE Driver.
您可以从这里安装OLE驱动程序.示例代码看起来像
$conn = new COM("ADODB.Connection");
$conn->Open('Provider=VFPOLEDB.1;Data Source="C:\\testDB.dbc";');
$query = "SELECT * FROM TABLE1 ";
$rs = $conn->Execute($query) or die("Error in query: $query. " . $conn->ErrorMsg());
while (!$rs->EOF) {
echo " Got COL1: " . $rs->Fields("COL1") . " :: COL2: " . $rs->Fields("COL2") . " id: " . $rs->Fields("ID") . "\n";
$rs->MoveNext();
}
$query = "UPDATE TABLE1 set COL1 = \"AA\", COL2 = \"Updated value\" ";
$conn->Execute($query);
我没有找到任何关于php的文档,但你可以参考MSDN ADO API并使用类似的API,特别是如果你想做基于事务的操作.
$conn->BeginTrans(); .. .. $conn->CommitTrans(); or $conn->RollbackTrans();