php代码中的错误mysql更新命令

Posted

技术标签:

【中文标题】php代码中的错误mysql更新命令【英文标题】:Error mysql update command in php code 【发布时间】:2013-11-22 09:34:54 【问题描述】:

我的 php 文件执行了许多数据库操作,包括以下操作。但是,此操作会导致 SQL 错误:

"SQLSTATE[42000]: 语法错误或访问冲突:1064 你有一个 SQL 语法错误;检查与您对应的手册 mysql 服务器版本,在 '10:07:28 WHERE 附近使用正确的语法 id=11' 在第 1 行"

php 调试器显示 $sqlquery 值:"UPDATE AGREEMENTS SET approval=2013-11-22 10:07:28 WHERE id=11 "

php 代码中的一些其他 SQL UPDATE 命令具有完全相同的语法并且可以正确执行(但不包括日期变量)。我怀疑这个问题与日期格式有关,但我不知道如何解决这个问题(?)

PHP 代码:

$currentdate = date("Y-m-d H:i:s"); 

$sqlquery ="UPDATE AGREEMENTS "
                    . "SET approval=".$currentdate." "
                    . "WHERE id=".$agreementids[$i]." ";

$db->UpdateDBRecord($sqlquery);

【问题讨论】:

尝试用引号将日期值括起来 你使用了不平衡的引号,请检查它们......另外,你为什么要连接不需要的字符串......` AGREEMENTS " . "SET` 【参考方案1】:

在日期变量周围添加单个 qoutes

$sqlquery ="UPDATE AGREEMENTS "
                . "SET approval='".$currentdate."' "
                . "WHERE id=".$agreementids[$i]." ";

【讨论】:

【参考方案2】:

试试这个:

$sqlquery ='"UPDATE AGREEMENTS SET approval="'.$currentdate.'" WHERE id="'.$agreementids[$i].'""';

【讨论】:

【参考方案3】:

在查询结束时不正确使用双引号并且没有使用单引号来比较日期,您的sql查询应该是

$sqlquery ="UPDATE AGREEMENTS SET approval='".$currentdate."' WHERE id='".$agreementids[$i]."'";

【讨论】:

以上是关于php代码中的错误mysql更新命令的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的更新命令在PHP中不起作用

mysql 从表单错误更新

无法用php更新mysql数据库吗?

如何使用 php 中的 cron 作业自动删除 mysql 行?

PHP Mysql获取表上次更新时间和日期[重复]

Android(PHP + MySQL)中的这段代码有啥问题?