【问题标题】:Sql Query not working!Sql 查询不工作!
【发布时间】:2010-10-16 18:13:29
【问题描述】:
INSERT INTO `test` (`x`, `y`)  WHERE `id` = `$id`

VALUES (`$x`, `$y`)

这个查询有什么问题?我在 php 文件中的 mysql_query() 函数中运行它。

【问题讨论】:

  • 您能否详细说明您希望通过此查询完成什么?

标签: php sql mysql


【解决方案1】:

还请注意,您必须使用单引号 (') 而不是反引号 (`) 来表示值。引用列名/字段名时使用反引号。

这个:

`field` = '$value'

而不是这样:

`field` = `$value`

除非你真的想引用另一个字段。这有时是您在复制值或匹配 JOIN 等时想要的。但是因为你有一个变量,我假设你想使用单引号而不是反引号。

【讨论】:

    【解决方案2】:

    所以,要么

    更新测试集 x='x', y='$y' WHERE id ='$id';

    INSERT INTO test ('x', 'y') VALUES ('$x', '$y');

    如其他帖子中所述 - 您不能使用 WHERE 进行 INSERT。

    【讨论】:

      【解决方案3】:

      您不能在插入时使用 where 子句。我想你可能想要一个更新声明:

      update test set
      x = $x,
      y = $y
      where id = $id
      

      当您在数据库中插入一个新值时,您通常在插入之后才有 ID 值(假设您使用的是自动生成的 ID)。

      【讨论】:

        【解决方案4】:

        您需要删除“WHERE id=$id” - 它在 INSERT 语句中没有任何意义。

        【讨论】:

          【解决方案5】:

          如果您尝试更新数据库中的信息,请在您正在运行的查询中使用 UPDATE 而不是 INSERT INTO。

          【讨论】:

            【解决方案6】:

            您不能将 Where 子句与插入一起使用。您要么插入一行,要么不插入。

            【讨论】:

              猜你喜欢
              • 2011-09-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多