从数组中获取值并将其保存在数据库的不同行中

时间:2015-05-25 09:29:22

标签: php mysql sql arrays mysqli

我通过打印$_POST['fruits'];

获得了以下数组
Array
  (
     [0] => Apple
     [1] => Mango
     [2] => Grapes
  )

我希望从此数组中提取值并将其保存在数据库中。我试过这个

foreach($fruit_array as $fruits)
    {
        $sql="INSERT INTO fruits(fruitname) VALUES ('$fruit_array')";
        if (mysqli_query($con, $sql)) 
            {
                echo "success";
            } 
        else
            {
                echo "Error updating record: " . mysqli_error($con);
            }  
    }

4 个答案:

答案 0 :(得分:3)

这是错误的,你的foreach概念不明确,试试这个:

foreach($fruit_array as $fruits) {
    $sql="INSERT INTO fruits(fruitname) VALUES ('$fruits')";
    if (mysqli_query($con, $sql)) {
        echo "success";
    } else {
        echo "Error updating record: " . mysqli_error($con);
    }  
}

答案 1 :(得分:3)

使用implode()

$fruits = "('" . implode("'), ('", $fruit_array) . "')";
$sql="INSERT INTO fruits(fruitname) VALUES $fruits";

无需额外的循环。

答案 2 :(得分:0)

您将整个数组作为值,而不是单个值。

$sql = "INSERT INTO fruits(fruitname) VALUES ('$fruits')";

答案 3 :(得分:-1)

$fruits = $_POST['fruits'];

现在你有$ fruits中的数组 然后像

一样使用它
foreach($fruits as $fruit_array)
    {
        $sql="INSERT INTO `fruits`('fruitname') VALUES ('$fruit_array')";
        if (mysqli_query($con, $sql)) 
            {
                echo "success";
            } 
        else
            {
                echo "Error updating record: " . mysqli_error($con);
            }  
    }

现在值已插入为数组

插入lopp是个坏主意。所有项目都可以插入一个查询中 所以你应该使用implode()

$fruit_array = "('" . implode("'), ('", $fruits) . "')";
$sql="INSERT INTO fruits(fruitname) VALUES $fruit_array ";