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 forUPDATE
。
【参考方案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语法错误,我不知道正确的语法[关闭]的主要内容,如果未能解决你的问题,请参考以下文章