SQL语法错误,我不知道正确的语法[关闭]

Posted

技术标签:

【中文标题】SQL语法错误,我不知道正确的语法[关闭]【英文标题】:SQL Syntax Error, i don't know the Correct Syntax [closed] 【发布时间】:2018-02-25 20:27:43 【问题描述】:
$statement = $pdo->prepare("UPDATE config SET (name, value) VALUES(:name, :value) WHERE id = 1");

您好,我需要您的帮助,我知道她是语法错误但我不知道语法错误是什么。

你能帮忙

【问题讨论】:

这应该不是什么大谜团,全是in the documentation for UPDATE 【参考方案1】:

set 的单独分配:

UPDATE config
    SET name = :name,
        value = :value 
     WHERE id = 1;

UPDATE 的语法在 mysql 中没有改变,并且从未(据我所知)包含VALUES 子句。 documentation 在这个主题上非常清楚。如果您认为文档不清晰,可以提供反馈。

【讨论】:

code $name = 'meta_autor'; $value = $_POST['meta_autor']; $statement = $pdo->prepare("UPDATE config SET name = :name, value = :value WHERE id = 1"); $statement->bindParam(':name', $name); $statement->bindParam(':value', $value); $statement->execute(); 我测试了你的方法,但它不起作用,我无能为力 @FelixSchürmeyer 你得到哪个错误? `代码致命错误:未捕获的 PDOException:SQLSTATE [42S22]:未找到列:1054 /www/htdocs/w01306c6/entwicklung/login-system/ 中的“字段列表”中的“字段列表”中的未知列“名称” config_form.php:77 堆栈跟踪:#0 /www/htdocs/w01306c6/entwicklung/login-system/config_form.php(77): PDOStatement->execute() #1 main 抛出 /www/htdocs/w01306c6/ entwicklung/login-system/config_form.php 在第 77 行 ``` 在第 77 行是 $statement->execute(); 所以配置表没有名称列。请将配置表模式添加到操作 @JimL 。 . .列的名称是从您的问题中提取的。 update 需要准确的表名和列名。【参考方案2】:

这是完整的代码:

$id = 1;
$sql = "UPDATE config SET `name`=?, `value`=? WHERE id=?";
$stmt= $dpo->prepare($sql);
$stmt->execute([$name, $value, $id]);

【讨论】:

以上是关于SQL语法错误,我不知道正确的语法[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我的更新 sql 查询一直说语法错误,但我不知道它是啥

编写查询时的 SQL 语法错误

错误 1064 (42000) : 使用 %s 附近的 SQL 语法有错误

需要帮助查找 SQL 代码中的语法错误 [关闭]

eclipse上的语法错误[关闭]

创建函数时出现“MySQL语法错误”[关闭]