PDO在Mysql中插入多个复选框值


PDO Insert multiple checkbox values in Mysql

我想在Mysql中使用PDO插入多个复选框值。

HTML表单部分复选框

<form action="insert.php">
    <label>
        <input name="check[]" id="check[]" type="checkbox" value="<?=$row['id']?>" />
        <span class="lbl"></span>
    </label>
    <button type="submit" name="send" id="send" >
</form>

PHP Part insert

$checkbox = $_POST['check'];
for (i$=0; $i<sizeof($checkbox);$i++)
    $insert = $pdo->prepare("INSERT INTO table (check_value) VALUES (?)");
    $insert->execute(array(".$checkbox[$i]."));

当我使用".$checkbox[$i]."给出"Notice: Array to string conversion"

这样做的一种方法是动态构建SQL。只需添加尽可能多的?到SQL中,因为有复选框值。

<?php
if (isset($_POST['check'])) {
    $sql = 'INSERT INTO TABLE (check_value) VALUES ({foo})';
    $foo = '';
    foreach($_POST['check'] as $key => $value) $foo .= '?,';
    $foo = rtrim($foo, ',');
    $sql = str_replace('{foo}', $foo, $sql);
    $insert = $pdo->prepare($sql);
    $insert->execute($_POST['check']);
}