使用下面的代碼,只有最後一條記錄被插入到數據庫中。但是,如果我在循環中回顯數據,它會回顯所有記錄並回顯$ 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注入風險。這些值目前直接從用戶進入您的查詢。他們應該逃脫,或者你應該探索準備好的陳述。 –