我很难过,我认为这肯定会奏效。我想在一个表的不同列中插入多个复选框值(如果选中)。我尝试使用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列是&#34; id,check1,check2,check3&#34;所以SQL应该是这样的:
INSERT INTO `checklist_test` (`id`, `check1`, `check2`, `check3`)
VALUES (NULL, 'test', 'test', 'test');
P.O.V.以外的Appreciater我需要谢谢!
答案 0 :(得分:1)
如果在循环内执行查询,则执行x个查询(或插入x个行)而不是插入x个列。这里确实没有必要使用循环,因为你有一定数量的列。
使用echo语句打印查询以查看您正在运行的内容,并且您将了解为什么这不起作用。
您也不应该直接将用户输入放入MySQL查询中。阅读SQL注入。