无法将mySQL作为新列添加到数字中

时间:2013-12-24 13:57:05

标签: php mysql sql html-form

我正在尝试从表单中获取数字,以成为mySQL数据库中的新列。 这是我的表格:

<form action="henkehaxx.php" method="post">
    Anvnamn: <input type="text" name="anvnamn"><br>
    Drinkid: <input type="number" name="drinkid"><br>
    Betyg: <input type="number" name="betyg">
    <input type="submit">
</form>

到目前为止,我有这个非常适合创建新列(当列已经存在时忽略):

mysql_query("ALTER IGNORE TABLE drinkbetyg ADD $_POST[anvnamn] VARCHAR(20)")

但我希望将drinkid(来自表格)作为一个新专栏,因此我希望这样的事情能够发挥作用:

mysql_query("ALTER IGNORE TABLE drinkbetyg ADD $_POST[drinkid] INT")

但事实并非如此。

我尝试过许多变体,如INT,TINYINT,INT(20),VARCHAR(20),并将html表单中的值类型更改为文本,但只要drinkid只包含数字,问题就会持续存在

为什么不起作用? 我能做些什么才能让它发挥作用?

感谢。

1 个答案:

答案 0 :(得分:3)

看起来您正在尝试添加名称为INT的列,如下所示:

ALTER IGNORE TABLE drinkbetyg ADD 15 INT;

这不起作用,因为MySQL中的标识符{}不允许使用裸数字标识符certain rules。这看起来非常非常奇怪,而且可能不是你想做的事

但是,如果这是你想要做的事情,那么首先在数字周围打上反贴词:

ALTER IGNORE TABLE drinkbetyg ADD `15` INT;

...在PHP中,它看起来像这样:

ALTER IGNORE TABLE drinkbetyg ADD `$_POST[drinkid]` INT

如果真的,你真的想做什么,那么你可能会以错误的方式解决问题,因为这是一种非常不寻常的,可能是非常糟糕的做法。