0
任何人都可以看到我在做什麼錯了嗎? 我想用下面的代碼從一個陣列添加多個值到一個SQL表:如何從表單中將數組值添加到數據庫中
foreach($_POST['serialNumber'] as $i => $serialNumber)
{
// Get values from form.
$request_id = mysql_real_escape_string($req_id);
$serialNumber = mysql_real_escape_string($_POST['serialNumber'][$i]);
$machineType = mysql_real_escape_string($_POST['machineType'][$i]);
$machineModel = mysql_real_escape_string($_POST['machineModel'][$i]);
// Add to database
$sql = "INSERT INTO serialnumbers(
request_id, serial_type, serial_model, serial_number
) VALUES (
'".$request_id."','".$machineType."','".$machineModel."','".$serialNumber."'
)";
}
無論出於何種原因,只有最後一個值被存儲在表中。我在這裏錯過了什麼?
這是因爲你沒有在循環的每次迭代中執行插入查詢。這意味着它構建所有查詢,但只有最後一個被執行。另一方面,你可能想使用[PDO準備語句](http://stackoverflow.com/questions/1457131/php-pdo-prepared-statements)。他們會讓你的代碼看起來更乾淨。 – NullUserException
在每次迭代中,您都要創建一個插入語句。在循環結束時,您將擁有一個插入語句,並在其中插入最後一個值。然後你執行插入語句,你只會得到插入的最後一個值。 – melc
請顯示您的html –