用php在MySql中构建查询
我使用以下循环向数据库中添加多个用户,但是它仅在表单中添加一个用户时有效用php在MySql中构建查询,php,mysql,mysqli,Php,Mysql,Mysqli,我使用以下循环向数据库中添加多个用户,但是它仅在表单中添加一个用户时有效 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, schoo
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;
}
echo“以下名称已添加到$cname
”;
$query=“”;
对于($i=0;$iquery($query)){
$id=$mysqli->insert_id;
错误日志(“插入{$firstname}作为ID{$ID}”);
返回true;
}否则{
错误日志(“插入{$query}时出现问题”);
返回false;
}
我只需要在每次迭代中添加($mysqli->query($query)
),还是只需要在循环中移动'if'子句?还是有更好的方法
谢谢。最好将if子句放入循环中。您尝试过吗?此时您的查询正在尝试一次发送多个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];
}
$query=“插入学生(名字、姓氏、年份、班级、学校、电子邮件)值”;
对于($i=0;$i0?',':'';
$query.=“({$fname[$i]}'、{$lname[$i]}'、{$year}'、{$cname}'、{$sch}'、{$uname[$i]}'”;
回显$fname[$i]。“.$lname[$i]。”.$uname[$i];
}
您的echo结果是什么?以及如何向此php文件中输入值?echo为空,没有数据添加到数据库。“if”返回false,页面重定向到表单。如果表单中只输入一个名称,则它可以正常工作。您能很好地显示表单aas吗?最好在每个值元组后省去分号。这并不重要,您会这样做的必须“如果”它无论如何-否则它将在最后一个数据集后留下分号并失败。