添加列我有2個數據庫,體系和客戶。 在SYSTEM中有一個包含用戶名的stafflist表。 CUSTOMER中的每個表都是客戶名稱。PHP/MySQL與嵌套的foreach
我所試圖做的是在客戶的foreach表, 的foreach '的用戶名在system.stafflist', ALTER TABLE '$表' 地址 '$用戶名'
這裏是我的代碼:
$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
如果我註釋掉$銷售foreach循環和改變我的ALTER語句列名「ABC」,而不是$銷售然後我就可以成功添加「ABC '給每張桌子。
是什麼原因造成的$銷售的foreach給錯誤?
在foreach循環
我也不會,如果我的代碼看起來很滑稽的人,我拿不出自稱是一個良好的編碼驚訝,但給它我最好,隨着我去學習。在調整這一切工作之後,您將$ sales視爲$ sales,將$ table視爲$ table。奇怪的是,$表循環從來沒有給我的問題。反正它正在工作。也感謝你的信息。 – Nama
那麼你是一個好的開始,PHP.net是一個很好的信息來源。我沒有打擾告訴sql注入,因爲你使用的是內部數據,但是在從用戶輸入跳到數據庫之前,你必須學習準備好的語句。 http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1其餘的,繼續。 :)在我看來,你張貼問題的方式是很好的。好樣的! –