【发布时间】:2017-02-09 01:48:55
【问题描述】:
我有 2 个数据库,SYSTEM 和 CUSTOMER。 在 SYSTEM 中有一个包含用户名的人员列表。 CUSTOMER 中的每个表都是一个客户名称。
我正在尝试做的是在 Customer 中的 foreach 表, foreach 'system.stafflist 中的用户名', ALTER TABLE '$table' ADD '$username'
这是我的代码:
$sql3 = "SELECT username from system.stafflist";
$result3 = $conn->query($sql3);
$sales = array();
while($row3 = $result3->fetch_array()) {
$sales[]="x".$row3['username'];
}
$sql = "SHOW TABLES from customer";
$result = $conn2->query($sql);
$table = array();
$i=0;
while($row = $result->fetch_array()) {
$table[] = $row[$i];
}
var_dump ($table);
var_dump ($sales);
foreach ($table as $table){
foreach ($sales as $sales){
$sql2 = "ALTER TABLE $table ADD $sales VARCHAR( 12 );";
if ($conn2->query($sql2) === TRUE) {} else {echo "Error: " . $sql2 . "<br>" . $conn2->error;}
}
}
var_dump 显示了两个正确的数组:
array (size=62)
0 => string 'rita' (length=4)
1 => string 'sadk' (length=4)
2 => string 'sand' (length=4)
3 => string 'sany' (length=4)
4 => string 'sbdk' (length=4)
5 => string 'sdkg' (length=4)
array (size=54)
0 => string '0007' (length=4)
1 => string '0006' (length=4)
2 => string '0005' (length=4)
3 => string '0004' (length=4)
4 => string '0003' (length=4)
但是有两个错误:
错误:ALTER TABLE rita ADD x2304 VARCHAR(12); 重复的列名“x2304”
和
Warning: Invalid argument supplied for foreach() <--the $sales foreach
如果我注释掉 $sales foreach 循环并将我的 ALTER 语句列名更改为“abc”而不是 $sales,那么我可以成功地将“abc”添加到每个表中。
是什么导致 $sales foreach 出错?
【问题讨论】: