我有以下循环将几个用户添加到数据库中,但只有当一个用户添加到表单中时它才有效。
echo "The following names have been added to $cname<br><br>";
$query = "";
for ($i = 0; $i < count($fname); $i++) {
$query = $query . "INSERT INTO Students (firstName, lastName, year, class, school, email) "
." VALUES ('{$fname[$i]}','{$lname[$i]}','{$year}','{$cname}','{$sch}','{$uname[$i]}'); ";
echo $fname[$i] . " " . $lname[$i] . " " . $uname[$i];
}
if ($mysqli->query($query)) {
$id = $mysqli->insert_id;
error_log("Inserted {$firstname} as ID {$id}");
return true;
} else {
error_log("Problem inserting {$query}");
return false;
}
我只需要在每次迭代中添加($mysqli->query($query)
吗?或者只是移动&#39; if&#39;循环内的子句?或者有更好的方法。
谢谢。
答案 0 :(得分:1)
当您的查询尝试一次发送多个SQL查询时,它失败了。您应该更改构建查询的方式:
$query = "INSERT INTO Students (firstName, lastName, year, class, school, email) VALUES ";
for ($i = 0; $i < count($fname); $i++) {
$query .= $i>0 ? ',':'';
$query .="('{$fname[$i]}','{$lname[$i]}','{$year}','{$cname}','{$sch}','{$uname[$i]}') ";
echo $fname[$i] . " " . $lname[$i] . " " . $uname[$i];
}
答案 1 :(得分:0)
最好把if子句放在循环中。你试过吗?