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更新命令的主要内容,如果未能解决你的问题,请参考以下文章