【问题标题】:Incorrect SQL syntax, no obvious mistakes [duplicate]SQL语法不正确,没有明显错误[重复]
【发布时间】:2013-06-29 10:20:49
【问题描述】:

以下 MySQL 语句在 PHP 运行时报告错误的 SQL 语法,但我找不到任何明显的错误。

"INSERT INTO {$UserTable} (username, password, email, salt) VALUES ({$Username}, {$Password}, {$Email}, {$Salt});"

我在脚本中添加了一些调试功能,以查看问题所在,但尚未注意到问题。

最终查询

INSERT INTO users (username, password, email, salt) VALUES (TestUser, ea55336ae722b176a64eff46bbf7eeb0f5053a04f5e94670d719656dc496a8a754dd3e36ead83459020021526747b0a9fc82c397a40699e64f37ad2460a61067, TestEmail, EWEQPVVWIGX);

错误信息

Unknown column 'TestUser' in 'field list'

【问题讨论】:

  • @YourCommonSense:差不多,但是使用 PDO 的描述非常不充分,而且几乎是一个脚注。再加上假装答案是“错误的”充其量是幼稚的,最坏的情况是撒谎。 61k 你应该知道得更多。

标签: php mysql sql syntax mysqli


【解决方案1】:

用单引号将各个值括起来。

 "INSERT INTO {$UserTable} (username, password, email, salt) VALUES ('{$Username}', '{$Password}', '{$Email}', '{$Salt}');"

【讨论】:

  • 谢谢,解决了我的问题。我是个白痴嘿嘿。
  • 有什么理由拒绝其他答案吗??
  • 也有人对我的投了反对票。 :\
  • 可能是@TheCommonSense,试图引起更多关注他平庸的回答!
【解决方案2】:

最终查询应该是

INSERT INTO users (username, password, email, salt) 
VALUES ('TestUser', 'ea55336ae722b176a64eff46bbf7eeb0f5053a04f5e94670d719656dc496a8a754dd3e36ead83459020021526747b0a9fc82c397a40699e64f37ad2460a61067','TestEmail', 'EWEQPVVWIGX');

【讨论】:

    【解决方案3】:

    您需要在所有字符串周围添加单引号

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 2014-06-03
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多