php - SQL 更新语句抛出 SQLSTATE[42000]:语法错误或访问冲突:1064
问题描述
当试图更新我的数据库时,我得到一个SQLSTATE[42000]:语法错误或访问冲突:1064 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 ':summary, goingWell:wentWell, '错误附近使用正确的语法。非常感谢一些帮助,因为我已经尝试解决这个问题好几天了。
这是我用来更新数据库的代码(journal.php):
public function updateJournal($array) {
$query = "UPDATE journal SET
summary:summary,
wentWell:wentWell,
doBetter:doBetter,
ideas:ideas,
mood:mood,
motivation:motivation,
concentration:concentration,
tranquility:tranquility,
physical:physical WHERE id=:journalId";
$stmt = $this -> connection -> prepare($query);
$stmt -> execute();
}
我使用一个数组(updateJournal.php)将数据发送到 updateJournal-Function(journal.php):
$checkJournal -> updateJournal([
"summary" => $summaryField,
"wentWell" => $wentWellField,
"doBetter" => $doBetterField,
"ideas" => $ideasField,
"mood" => $sliderValueMood,
"motivation" => $sliderValueMotivation,
"concentration" => $sliderValueConcentration,
"tranquility" => $sliderValueTranquility,
"physical" => $sliderValuePhysical,
"journalId" => $journalId
]);
这是我的数据库:
解决方案
首先在您的集合查询中语法错误,您需要将 : 替换为 = 。然后在您的查询中没有传递数组的变量,您将需要类似:
$query = "UPDATE journal SET summary=".$array['summary'].",
wentWell=".$array['wentWell'].",...
我建议您查找sql update doc和一些php 帮助
推荐阅读
- java - 使用条件获取值的 Json 查询字符串
- bash - 从文本创建 csv 文件
- angular - Angular/TypeScript:获取背景图片的 URL
- xamarin.forms - 使用 Xamarin.Form 构建 VSTS CI 无法找到 MVVMLight 程序集
- r - MLR 和 randomForestSRC:计算机之间的不连贯性
- ios - Swift UITableViewCell 在 cellForRowAtIndexPath 之后无法设置其约束
- php - 如何更快地计算 mySQL 数据库中的条目?
- java - 调用 Kura API 方法?
- postgresql - 缓存计划不得更改结果类型
- amazon-web-services - 如何检查与 AWS 中特定 IAM 访问密钥关联的权限