我有一个用 PHP 编写的提交脚本。我们组织的多项调查都使用它。调查由其他用户创建。当他们提交到脚本时,PHP 将数据放入 MySQL 中的相应表中。我有时遇到的错误是用户更新了表单。他们添加了一个字段,或者重命名了一个输入,而脚本没有考虑到它,因为它希望一切都是一样的。因此,我正在尝试找到一种方法来使其适应添加新字段时的情况。这是我所拥有的:
if( mysql_num_rows( mysql_query("SHOW TABLES LIKE '".$survey."'"))){
echo "table exists";
$sql = "SELECT * FROM " . $survey . ";";
$result = mysql_query($sql)
or die(mysql_error());
$i=0;
while($row = mysql_fetch_row($result));{
echo $row[0];
foreach($_POST as $k => $v){
$i++;
if($k != $row[$i]){
$query = "ALTER TABLE " . $survey . " ADD " . $k . " VARCHAR(100);";
mysql_query($query)
or die(mysql_error());
}
}
}
}
我习惯在JS中做while循环,所以我不知道在这里使用i是否有效(实际上,我知道它不起作用......因为它不起作用......)。我想说的是,如果键与当前字段名称不匹配,则将其添加到表中。如何正确返回 $row?
当我提交给脚本时,它说:重复的列名'V4'
我有 echo $row[0] 但它返回一个 1。这是第一条记录的主键中使用的 int。