我的目标
将多个列添加到 MySQL 表中。我有两个担忧:
1)如何做到这一点
2)这是一个坏主意,如果是,为什么?
我想要这样做的原因:
我有一个带有系统命名字段集的表单(例如 field_1 field_2 等)。我想将该数据发布到页面并将其存储在 mysql 表中,并且我希望字段输入相应名称的列(即列名为 field_1 field_2 等)
与手动为每个字段名称手动创建列不同,循环任务似乎很明显。
然而,这里和这里的研究似乎告诉我这种方法会引起人们的恐惧,我没有找到实际的解决方案。
我的尝试:
$mysqli = new mysqli("localhost","user","password","db");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$i = 1;
while ($i <= 14)
{
$column = 'field_'.$i;
$sql= '"ALTER TABLE supply ADD '.$column.' VARCHAR(45)"';
$mysqli->query($sql);
printf("Affected rows (ALTER): %d\n", $mysqli->affected_rows);
$i++;
}
这似乎运行没有错误,但是受影响的行消息给了我(每个循环,所以其中 14 个):
受影响的行(ALTER):-1
并且没有添加列。
谁能告诉我我的错误,或者更好的方法来调试出了什么问题?此外,如果这是一件不明智的事情,您能否解释一下为什么以及我应该考虑做什么?谢谢你。