【问题标题】:I don't see the mistake in my SQL query [closed]我在我的 SQL 查询中看不到错误 [关闭]
【发布时间】:2013-03-02 23:08:45
【问题描述】:

你们中的任何人都可以帮助我吗?这个语法有什么问题:

UPDATE subscriptions 
SET type_abonnement = 'premium', 
    betalingsmethode = 'EInvoice', 
    einvoice_email = 'email@email.com', 
    bank_naam = '', 
    tenaamstelling = '', rekeningnummer = '', 
    auto_afschrijving = '', 
    voorwaarden_akkoord = 'Akkoord met de voorwaarden', 
    gemachtigd_toezegging = 'Ik ben gemachtigd', 
WHERE 
    keycolumn = '5141d398ceeb7' 

错误信息:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,在第 10 行的 'WHERE keycolumn = '5141d398ceeb7'' 附近使用正确的语法

这是带有错误消息的 SQL 的回显。我使用的代码:

$sql="UPDATE subscriptions SET type_abonnement = '".$typeabonnement."',
        betalingsmethode = '".$betalingsmethode."',
        einvoice_email = '".$emailfactuur."',
        bank_naam = '".$bank."',
        tenaamstelling = '".$tenaamstelling."',
        rekeningnummer = '".$rekeningnummer."',
        auto_afschrijving = '".$afschrijving."',
        voorwaarden_akkoord = '".$voorwaarden."',
        gemachtigd_toezegging = '".$gemachtigd."',
        WHERE keycolumn = '".$uniqueid."'    ";

echo $sql;

mysql_query($sql) or die(mysql_error());

mysql_close();

提前致谢!

【问题讨论】:

  • 去掉WHERE前的逗号
  • 我已经厌倦了所有这些 mysql_* 和 SQL 注入的废话......Read this.
  • 请告诉我你知道SQL注入......
  • 谢谢 pedromarce,就是这样! @TheRest,认为这不是万无一失的:所有变量都已被 real_escaped。

标签: mysql sql variables


【解决方案1】:

在 where 子句之前有一个逗号 ,,这可能是造成这种情况的原因。这里:

... 'Ik ben gemachtigd', WHERE ...

去掉逗号就可以了

【讨论】:

  • 我怎么会错过这个?!非常感谢!
  • 如果你把逗号放在每行的前面而不是末尾,你就不太可能犯这个错误。
【解决方案2】:
...gemachtigd_toezegging = 'Ik ben gemachtigd', WHERE keycolumn...

WHERE = 错误之前有一个逗号

【讨论】:

  • 我怎么会错过这个?!非常感谢gbn!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
相关资源
最近更新 更多