我有一个要插入数据库的复选框列表,我已将其作为数组处理:

<input name="my_array[]" value="<?php echo $data['ID'] ?>" type="checkbox">
<?php echo $data['name'] ?><?php echo "br/>";


我正在从数据库中获取复选框列表,并且所选复选框的发布方式如下:

   $strFoo=$_POST['my_array'];

    $strBar = "";


    foreach ($strFoo as $strFooName) {

    $strBar .= $strFooName . ", ";
    }
    $strBar = substr($strBar, 0, -2);


与之相对应的是,我得到的ID列表如下所示:1, 2, 3, 4

不幸的是,我下面的foreach仅插入数组的第一个ID。

foreach ($strFoo as $strFooName) {

        $strSql="INSERT INTO table (ID)
                 VALUES ('$strBar')";
    }


如何将每个ID插入表格?

最佳答案

必须是:

INSERT INTO table (ID) VALUES (1), (2), (3), (4)


因此您的处理步骤需要

$values = array();
foreach ($strFoo as $strFooName) {
     $values[] = '(' . intval($strFooName) . ')';
}

$strBar = implode(',', $values);


请注意intval的添加-确保仅有效数字插入到SQL语句中。您的版本容易受到SQL injection攻击。

关于php - 当我有复选框中的数组时,MySQL foreach INSERT。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8066369/

10-11 20:21
查看更多