我正在尝试从表单中获取数字,以成为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只包含数字,问题就会持续存在
为什么不起作用? 我能做些什么才能让它发挥作用?
感谢。
答案 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
如果真的,你真的想做什么,那么你可能会以错误的方式解决问题,因为这是一种非常不寻常的,可能是非常糟糕的做法。