php - 我怎样才能解决这个错误,SQLSTATE [42000]?
问题描述
请帮我解决这个错误。我厌倦了搜索解决方案...错误:SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“WHERE name=NULL”附近使用正确的语法
我的数据库有 3 column=id(int),name(varchar),comment(varchar),我想插入评论。
我的PHP代码:
<?php
include "./Config.php";
include './MyPDO.php';
$response = array() ;
$connect = MyPDO::getInstance();
$name = $_REQUEST['name'];
$comment=$_REQUEST['comment'];
$query = " INSERT INTO user "
. " (comment) "
. " VALUES "
. " (:comment) "
. " WHERE name=:name ";
$stmt = $connect->prepare($query);
$stmt->bindParam(":name",$name);
$stmt->bindParam(":comment",$comment);
try {
$stmt->execute();
$response['massage'] = "sucess";
echo json_encode($response);
exit;
} catch (PDOException $ex) {
$response['massage'] = "error";
$response['error']=$ex->getMessage();
echo json_encode($response);
}
解决方案
insert into ... values()
语法不带where
子句。
如果你想insert
,那么:
insert into user(name, comment) values(:name, :comment)
但实际上看起来你可能想要一个update
:
update users set comment = :comment where name = :name;
前者使用给定的名称和注释在表中创建一条新记录。
后者修改已存在的具有相同记录的记录name
并设置其comment
值。
推荐阅读
- sql-server - AT (@) 符号开始和结束
- r - 错误:内存耗尽(达到限制?) R 代码 Windows 任务计划程序
- r - 为多种值类型重塑 R 中的数据
- python - 如何在 Python 中修复这个 n-gram 提取器?
- sql - 在 SQL 中分解位掩码
- r - R - 在数据框上使用 purr 添加列
- javascript - 验证 onfocus 在标签文本和输入边框上
- python - 如何在按 MultiIndex 名称选择时分配给 Pandas DataFrame?
- python - 错误文件“
",第 12 行 y_predict = column_or_1d(y, warn=True) ^ IndentationError: 意外缩进 - java - 对大数运行该方法会得出不准确的结果