【发布时间】:2013-06-07 20:13:59
【问题描述】:
我有几个复选框,如果它们被选中,我想将它们的值插入数据库。
HTML:
<input type="checkbox" id="m1" name="category[]" value="1"/>
<input type="checkbox" id="m2" name="category[]" value="2"/>
<input type="checkbox" id="m3" name="category[]" value="3"/>
<input type="checkbox" id="m4" name="category[]" value="4"/>
<input type="checkbox" id="m5" name="category[]" value="5"/>
我可以很好地打印出类别数组,它会根据我单击的复选框为我提供正确的值。我似乎无法遍历它们以在我的数据库中插入多行。
插入数据库后,数据库应如下所示:
| USERID | MACHINEID |
----------------------
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
如果我只点击前 3 个复选框。
我在想这样的事情:
$array_zone = $_POST['category'];
if(isset($_POST['category']))
{
for($i = 0; $i < count($array_zone); $i++)
{
mysql_query("INSERT INTO `userPlanDetail` (`user_id`, `machine_id`) VALUES ('$user_id', ' $array_zone[$i]')");
}
}
【问题讨论】:
-
逻辑不正确。 $_POST 可能有数据,但类别部分可能为空。您的示例代码也容易受到SQL injection attacks 的攻击,因此请不要使用此代码。
-
感谢您的信息,但现在我只是想将复选框输入到数据库中。之后保护它很简单
-
只想提一下,您应该先转义这些值,然后再将它们直接放入查询中。查找 SQL 注入。