php - 当我有来自复选框的数组时,MySQL foreach INSERT 。

标签 php mysql insert

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

<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/

相关文章:

java - 无法使用 JDBC 驱动程序连接到本地主机上的 MySQL

php - 使用 liipImagineBundle 更新/删除记录时删除/更新缓存图像

php - 同步数据库 sqlite 与 mysql

mysql - 数据库查询选择客户信息

Mysql配置问题

mysql - 下面的mysql查询创建触发器时出现什么错误

php - 我想将php代码中的成员插入mysql数据库,它自动递增但没有添加数据

php - sql插入具有层次结构的一堆记录

php - 如何使用 PHP 从输入框中删除引号?

php - 如何在mysql数据库中添加特殊字符,如括号[]、单引号 ' double quote"