【问题标题】:Insert Checkbox Array into Multiple MySQL table Columns with PHP使用 PHP 将复选框数组插入多个 MySQL 表列
【发布时间】:2017-05-09 09:25:44
【问题描述】:

我很困惑,我认为这肯定会奏效。我想将多个复选框值(如果选中)插入到一个表的不同列中。我试图用一个 for 循环来做到这一点,并保持命名约定一致,这样我就可以将 for 循环与复选框数组一起使用。这是php代码:

$connection = new mysqli("localhost","root","","employee_db");
if(isset($_POST['check'])){
    $check = $_POST['check'];
    if($check){
        print_r($check);
    }else{
        echo "nothing checked";
    }

    for($i=0;$i<sizeof($check);$i++){
        $query = "INSERT INTO  `checklist_test` (`$check[$i]`) VALUE (`\"$check[$i]\"`)"; 
        $result = mysqli_query($connection,$query);
        if(!$result){
            die("NOPE <br>" . mysqli_error($connection));
        }else{
            echo "yup";
        }
    }
}

这里是 HTML

<form action="" method="post>
  <input type="checkbox" name="check[]" value="check1">Check1
  <input type="checkbox" name="check[]" value="check2">Check2
  <input type="checkbox" name="check[]" value="check3">Check3
  <input type="submit" value="submit">
</form>

MySQL 列是“id, check1, check2, check3”,所以 SQL 应该如下所示:

INSERT INTO `checklist_test` (`id`, `check1`, `check2`, `check3`) 
VALUES (NULL, 'test', 'test', 'test');

P.O.V. 之外的欣赏者我需要感谢!

【问题讨论】:

    标签: php mysql arrays checkbox


    【解决方案1】:

    如果您在循环内执行查询,您将执行 x 个查询(或插入 x 个行),而不是插入 x 个列。因为你有一定数量的列,所以这里真的不需要使用循环。

    使用 echo 语句打印查询以查看您正在运行的内容,您将了解为什么这不起作用。

    您也不应该将用户输入直接放入 MySQL 查询中。阅读 SQL 注入。

    【讨论】:

      猜你喜欢
      • 2015-02-19
      • 2021-07-14
      • 2011-09-06
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      相关资源
      最近更新 更多