PHP代码返回未知列错误

时间:2014-08-09 05:08:39

标签: php mysql

我想知道是否有任何PHP / MySQL专家可以帮助我。我编写了一个PHP代码,我希望在数据库中将新列添加到我的表中。以下是代码:

     <?php

              // All the database connection codes here

      $retro = mysqli_real_escape_string($con, $_POST['retro']);
      $moon = mysqli_real_escape_string($con, $_POST['moon']);
      $astronomicalunit = mysqli_real_escape_string($con, $_POST['astronomicalunit']);

      $sql = "ALTER TABLE Planets
      ADD (COLUMN 'RetrogradePrograde' VARCHAR(45),
      COLUMN 'NumberOfMoons' VARCHAR(45),
      COLUMN 'DistanceFromSun' SMALLINT(5));";

      $sql = "UPDATE Planets
      SET   RetrogradePrograde = '$retro',
      NumberOfMoons = '$moon',
      DistanceFromSun = '$astronomicalunit';";

      // all the mysqli connection failure notification here

      // close mysqli connection

      ?>

但是当我尝试在浏览器上运行此程序时,我在“字段列表”中收到消息“错误:未知列'RetrogradePrograde'”当我刚创建它时,怎么会有UNKNOWN列?请帮忙。

3 个答案:

答案 0 :(得分:2)

ALTER TABLE命令中的列名称周围有错误的引号类型。它们应该是反引号,而不是单引号。或者你可以完全省略它们,因为你的列都不是保留字。另外,可选的单词COLUMN应该在括号之外。

$sql = "ALTER TABLE Planets
    ADD COLUMN (
        `RetrogradePrograde` VARCHAR(45),
        `NumberOfMoons` VARCHAR(45),
        `DistanceFromSun` SMALLINT(5));";

请参阅documentation

中的语法

答案 1 :(得分:0)

从定义中删除列。试试这个: -

$sql = "ALTER TABLE Planets
      ADD COLUMN(RetrogradePrograde VARCHAR(45),
      NumberOfMoons VARCHAR(45),
      DistanceFromSun SMALLINT(5));";

答案 2 :(得分:0)

创建表或更新它们时,不要对列使用单引号或双引号,否则会产生sql错误。试试这个

<?php

              // All the database connection codes here

      $retro = mysqli_real_escape_string($con, $_POST['retro']);
      $moon = mysqli_real_escape_string($con, $_POST['moon']);
      $astronomicalunit = mysqli_real_escape_string($con, $_POST['astronomicalunit']);

      $sql = "ALTER TABLE Planets
      ADD COLUMN(RetrogradePrograde VARCHAR(45),
      NumberOfMoons VARCHAR(45),
       DistanceFromSun SMALLINT(5))";

      $sql = "UPDATE Planets
      SET   RetrogradePrograde = '$retro',
      NumberOfMoons = '$moon',
      DistanceFromSun = '$astronomicalunit'";

      // all the mysqli connection failure notification here

      // close mysqli connection

      ?>

希望这会有所帮助。