Php 如何在数据库中插入多个复选框值
我一直在做这件事,在网上搜索,两天的大部分时间里都是空的。通过大量的努力,我可以在DB中插入一个复选框值;但是,如果我选中更多的框,它仍然只会插入一个值 以下是我在输入用户页面上使用的代码(不包括表单标记): 下面是一些小错误的代码:Php 如何在数据库中插入多个复选框值,php,mysql,mysqli,Php,Mysql,Mysqli,我一直在做这件事,在网上搜索,两天的大部分时间里都是空的。通过大量的努力,我可以在DB中插入一个复选框值;但是,如果我选中更多的框,它仍然只会插入一个值 以下是我在输入用户页面上使用的代码(不包括表单标记): 下面是一些小错误的代码: for ($i=0; $i<sizeof($skills);$i++) { // echo $skills[$i]; $query= "INSERT INTO individual_skills(Skills_ID,Ind_ID) VALUE
for ($i=0; $i<sizeof($skills);$i++) {
// echo $skills[$i];
$query= "INSERT INTO individual_skills(Skills_ID,Ind_ID) VALUES (" .$skills[$i]. ",
".$_SESSION['Ind_ID'].")";
}
for($i=0;$i想想你的代码在做什么。每个循环,你都在重新定义$query
变量,这样当你结束时,$query
的最终值将是你最后一次检查的值
如果您仍然希望使用您编写的相同循环逻辑(这可能不是最有效的方法),那么您必须在循环中每次执行查询,以便执行您编写的每个查询
更准确地说,这种混乱似乎源于这样一个事实:您还没有完全发现为变量赋值和将变量传递给函数执行之间的区别。您很容易受到SQL注入的影响。使用准备好的语句并绑定skills\u id变量。谢谢……将做出这些更改。太好了。您我已经解释了原因。关于如何使此代码更高效(通过每个代码的循环听起来根本没有效率)的任何想法。请提前感谢。开始循环之外的$query
文本$query=“插入个人技能(技能ID,ID)
,然后在循环中,递归地附加到$query
变量:$query.=“值(“..$skills[$i]”,“$\u SESSION['Ind\u ID]”)"
。您必须确保循环逻辑的语法正确。最后,您将在一个$query
变量中包含所有值,可以添加到数据库中。非常有趣的方法。我现在就开始尝试。非常感谢您的耐心和帮助。如果您有时间,可以为我指出正确的方向吗(link)了解如何附加到$query。非常感谢。首先,$query
的原始定义不需要添加任何值,因为此时,$i
是未定义的。另一个问题,正如我所说的,是每个值(…)
需要用逗号分隔,因此循环语法是否正确取决于您
$skills = $_POST['skills'];
$id = $_SESSION['Ind_ID'];
for ($i=0; $i<sizeof($skills);$i++) {
// echo $skills[$i];
$query= "INSERT INTO individual_skills(Skills_ID,Ind_ID) VALUES (" .$skills[$i]. ",
".$_SESSION['Ind_ID'].")";
}
$query= "INSERT INTO individual_skills(Skills_ID,Ind_ID) VALUES (" .$skills[$i]. ",
".$_SESSION['Ind_ID'].")";
for ($i=0; $i<sizeof($skills);$i++) {
//echo $skills[$i];
$query.= " VALUES (" .$skills[$i]. ",".$_SESSION['Ind_ID'].")";
}