2013-02-21 109 views
0

我想插入复选框的选定值到MySQL数据库使用PHP。我只是不明白为什么它不起作用,因为它回应了所有的值,但它只会插入第一个选定的数据库。PHP的foreach循环插入到数据库中

HTML:

<b>Injury type:</b> 
Bruise <input type='checkbox' name='InjuryType[]' value='1'><br> 
Cut <input type='checkbox' name='InjuryType[]' value='2'><br> 
Graze <input type='checkbox' name='InjuryType[]' value='3'><br> 
Break <input type='checkbox' name='InjuryType[]' value='4'><br> 
Bump <input type='checkbox' name='InjuryType[]' value='5'><br> 

PHP:

foreach($_POST['InjuryType'] as $value) { 
$insert = mysql_query("INSERT INTO AccidentInjuryLink(InjuryID) VALUES ('$value')"); 
echo $value; 
} 
+0

'print_r($ _ POST);'是你预期的数据吗? – 2013-02-21 20:00:05

+0

1.不要使用mysql驱动程序,而是使用PDO。这可以防止SQL注入;我还可以看到你没有逃脱你的发布价值。 2.也许该列有一个主索引,这意味着所有数字必须是唯一的,因此只能插入第一个值。 – silkfire 2013-02-21 20:01:25

+0

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并且被正式弃用](http://j.mp/XqV7Lp)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 (另外,就像silkfire所说的,你在这里也容易受到[SQL注入](http://goo.gl/SHMN)。) – Eric 2013-02-21 20:02:02

回答

1

也许该列有主索引,这意味着所有的数字必须是唯一的,因此仅将所述第一值。