【问题标题】:MYSQL Query error WHERE id = $idMYSQL 查询错误 WHERE id = $id
【发布时间】:2012-11-24 01:32:27
【问题描述】:

我正在创建然后编辑表中的一行,但是我在 php 中的编辑 mysql 查询给了我一个我无法弄清楚的错误。有什么帮助吗?

创建查询:

$query = "INSERT INTO timelines (
id, event_name, event_date, date_created, attendee_count, attendee_names, maximum_attendees, creator_id, creator_name, price, thumbnail
) VALUES (
'{$timelineID}', '{$event_name}', '{$event_date}', '{$date_created}', '{$attendee_count}', '{$attendee_names}', '{$maximum_attendees}', '{$creator_id}', '{$creator_name}', '{$price}', '{$thumbnail}'
)";

编辑查询:

$query = "UPDATE timelines SET 
event_name = '{$event_name}', 
event_date = '{$event_date}', 
maximum_attendees = '{$maximum_attendees}', 
price = '{$price}', 
thumbnail = '{$thumbnail}',
WHERE id = {$timelineID}";

错误:

您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 8 行的“WHERE id =”附近

【问题讨论】:

  • 我希望这些变量被清理和转义。
  • 你好,小Bobby Tables
  • 为什么不先试试or die(mysql_error())???

标签: php mysql sql syntax


【解决方案1】:

WHERE 子句前多了一个逗号。只需将其删除,它就会正常工作。

thumbnail = '{$thumbnail}',
                          ^ here
WHERE ...

最终查询,

$query = "UPDATE timelines SET 
event_name = '{$event_name}', 
event_date = '{$event_date}', 
maximum_attendees = '{$maximum_attendees}', 
price = '{$price}', 
thumbnail = '{$thumbnail}'
WHERE id = {$timelineID}";

您的查询容易受到SQL INJECTION 的攻击,请阅读下面的文章以了解如何保护它。

【讨论】:

  • 我试过了,现在得到一个不同的错误:你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 7 行的 '' 附近使用正确的语法
  • thumbnail = '{$thumbnail}'WHERE id = {$timelineID}" 之间有多余的空间吗?
  • 查看缩略图的数据类型
  • 我想通了。另一个粗心的错误。它必须是 WHERE id = '{$timelineID}'
猜你喜欢
  • 1970-01-01
  • 2016-05-07
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2015-01-26
  • 1970-01-01
相关资源
最近更新 更多