我想在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']);
}