我有一个要插入数据库的复选框列表,我已将其作为数组处理:
<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/