在表中插入数组中的值

时间:2015-06-08 18:27:51

标签: php mysql arrays

我试图在“OrdreDetalierT”中的不同帖子中插入数组中的所有值。 它可以很好地写出所有的值 - 但我不能插入它。 值来自上一页的复选框。

$_SESSION["OrdreID"] = "$last_id";
$Ordre_id = $_SESSION["OrdreID"];

$aId = $_POST['formID'];
if(empty($aId)) 
{
   echo("You havn´t chosen any UVmaterialer.");
} 
else
{
$N = count($aId);

{
echo("You have chosen $N UVmaterialer: ");
for($i=0; $i < $N; $i++)    
echo($aId[$i] . ", ");
}
}

//works as intended
$aId2 = $_POST['formID']; 
for($i=0; $i < $N; $i++)  
echo "FormID" . $aId2[$i] . "<br>";

// This only inserts the last value of the array
$aId3 = $_POST['formID']; 
for($i=0; $i < $N; $i++)  
$sql2 = "INSERT INTO OrdreDetalierT (OrdreID, UVmaterialeID, Antal)
VALUES ('$Ordre_id', '$aId3[$i]', '15')";

插入“Antal”(数字)的值只是为了测试。 我希望有人可以提供帮助,我是PHP的新手。

1 个答案:

答案 0 :(得分:0)

最好在循环中使用预处理语句:

$stmt = $db->prepare("INSERT INTO OrdreDetalierT (OrdreID, UVmaterialeID, Antal) 
                      VALUES (?, ?, ?)";);

$antal = 15;
for($i=0; $i < $N; $i++)  
{
    $stmt->bind_param('isi', $Ordre_id, $aId3[$i], $antal);
    $stmt->execute();
}
$stmt->close();