【问题标题】:SQL syntax; check the manual that corresponds to your MariaDB server version - delete querySQL 语法;检查与您的 MariaDB 服务器版本相对应的手册 - 删除查询
【发布时间】:2017-04-14 13:01:22
【问题描述】:

我不知道这里出了什么问题,我尝试替换 WHERE Id = '$id' 但仍然无法正常工作。删除 WHERE CLAUSE 使其工作正常。 id 变量没有任何问题,它有它的价值。有人可以帮我解决这个问题吗?谢谢

  $id = $_GET['id'];

  $status = $con->exec("UPDATE wine SET ConfirmStatus = 'confirmed' WHERE Id = '".$id."' ");

【问题讨论】:

  • 在查询中使用参数。当您通过将用户输入转储到查询字符串中来处理查询字符串时,您将面临引入语法错误的风险。为什么要打扰?
  • Id 是数字类型吗?
  • 我试过gettype($id) 显示id是字符串类型
  • 我的意思是在表中wine...
  • 来自数据库的 ID 是 int 类型

标签: mysql sql mariadb


【解决方案1】:

尝试在 ' ' 中不包含 $id- 值:

  $status = $con->exec("UPDATE wine SET ConfirmStatus = 'confirmed' WHERE Id = ".$id);

如果它有效,请仍然考虑 Gordon 关于使用参数的评论...

【讨论】:

  • 谢谢你!我删除了单引号并将其更改为 Id = ".$id." :)
猜你喜欢
  • 2019-08-06
  • 2019-01-11
  • 2018-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
  • 2019-05-29
相关资源
最近更新 更多