在PHP中使用odbc更新表时出错

时间:2013-01-31 07:28:06

标签: php odbc sql-update dbf

我有DBF格式的数据库,并使用ODBC访问数据库。 当我对表进行更新时,它会返回错误:

警告:odbc_execute()[function.odbc-execute]:SQL错误:[Microsoft] [ODBC dBase驱动程序]索引未找到。,C:\ xampp \ htdocs \ payroll \中SQLExecute中的SQL状态S0012第16行的index.php

根据错误消息,似乎找不到索引。那个指数是什么?怎么修? 下面是我用来进行查询的PHP脚本。

$odbc = odbc_connect ('payroll', '', '') or die('Error connecting to server. Server says: '.odbc_errormsg());

$upd_q = "UPDATE paytran SET empno = 22 WHERE empno = 888";
$update = odbc_prepare($odbc, $upd_q);
$result = odbc_execute($update);

odbc_close($odbc);

使用相同的方法插入新记录。插入查询成功,但不适用于DELETE和UPDATE查询。

1 个答案:

答案 0 :(得分:2)

根据this thread中的最后一篇文章,

  

如果你现在有一个.dbf文件,通常是来自a   FoxPro应用程序。而且,因为你有一个.cdx文件,它告诉你   它是一个FoxPro复合索引文件,dBASE不能使用它   当然不能利用它来获得任何速度优势   你想在查询中。

你有一个.cdx档案吗?如果是这样,您可能需要检查您拥有的版本,然后找到FoxPro驱动程序或OLE DB提供程序,并使用它而不是ODBC。有关如何执行此操作的信息herehere;驱动程序和数据库提供程序是here