使用下面的代码,只有最后一条记录被插入到数据库中。但是,如果我在循环中回显数据,它会回显所有记录并回显$ i,表明它正在递增。还挺新到mysql所以php sql while循环只插入最后一条记录
while($i <= $num_to_enter){
$name[$i] = $_POST['name'][$i];
$lname[$i] = $_POST['lname'][$i];
$email[$i] = $_POST['email'][$i];
$phone[$i] = $_POST['pfirst'][$i].$_POST['psecond'][$i].$_POST['pthird'][$i];
$skill[$i] = $_POST['skill_level'][$i];
$sex[$i] = $_POST['sex'][$i];
$sql = "INSERT INTO `" . $mytable . "` (
`FirstName`,
`LastName`,
`email`,
`phone`,
`SkillLevel`,
`sex`
) VALUES (
'$name[$i]',
'$lname[$i]',
'$email[$i]',
'$phone[$i]',
'$skill[$i]',
'$sex[$i]'
);";
$i++;
}
你贴的代码显示的查询字符串,但没有在那里实际执行查询。我怀疑你的'mysql_query'或等价物位于你的循环后面,因此只执行'$ sql'的最后一个值。您需要将'mysql_query'或等价物放入循环中 –
您不应该在循环中使用mysql_query。 – Chris
我们不会在你的代码中提及SQL注入风险。这些值目前直接从用户进入您的查询。他们应该逃脱,或者你应该探索准备好的陈述。 –