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