gpt4 book ai didi

php - unixODBC PHP 更新语句错误

转载 作者:行者123 更新时间:2023-12-04 18:32:27 31 4
gpt4 key购买 nike

我正在使用 Ubuntu+php+unixodbc+mdbtools 来处理 .mdb 文件。
每件事(连接+选择)都很好,但是插入或更新语句。
我的代码是这样的:

$mdbConnection = new \PDO("odbc:mdbdriver",$user , $password , array('dbname' =>$FileName) ); 
$SelectResult = $mdbConnection->query("Select * from Zone");

$UpdateResult = $mdbConnection->query("Update Zone Set ShahrCode = 99");
$SelectResult返回正确的结果,但第二个抛出导致 apache 出现段错误的错误。
我用 isql 命令对其进行了测试。运行 Select 语句是成功的,但更新不是。
#isql mdbdriver
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>Update Zone Set ShahrCode = 99
Error at Line : syntax error near Update
syntax error near Update
Got no result for 'Update Zone Set ShahrCode = 99' command
[08001][unixODBC]Couldn't parse SQL
[ISQL]ERROR: Could not SQLExecute

或者
SQL> Update [Zone] Set ShahrCode = 99
Error at Line : syntax error near Update
syntax error near Update
Got no result for 'Update [Zone] Set ShahrCode = 99' command
[ISQL]ERROR: Could not SQLExecute

我应该如何解决这个错误?
谢谢大家

最佳答案

就个人而言,我不会花很多时间试图让 PHP + mdb_tools + unixODBC 可靠地协同工作。我已经尝试了好几次,尽管我尽了最大的努力,但还是很不成功。

我的建议是:

  • 如果在 Access .mdb 文件中维护您的数据是一项严格的要求,那么必须假设 Windows 计算机参与了该项目。在这种情况下,我建议您在 Windows 机器上运行 PHP 代码并使用 COM_DOTNET 来操作 Access 数据库(通过使用 ADODB.Connection 和相关对象的 Windows ODBC)。
  • 如果在 Linux 上运行您的 PHP 代码是一个坚定的要求,那么将您的数据从 Access .mdb 移动到其他可以更好地使用 PHP 的数据库中是很有必要的。 (MySQL 将是更常见的选择之一。)
  • 如果 1. 和 2. 都是严格要求,那么最好的选择可能是将 .mdb 文件移动到 Windows 机器并使用 ODBTP从 Linux 机器上运行的 PHP 代码操作 .mdb 文件。
  • 关于php - unixODBC PHP 更新语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342165/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com