使用 php 在 MySql 中构建查询


Building a query in MySql with php

我有以下循环将多个用户添加到数据库中,但是它仅在表单中仅添加一个用户时才有效。

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)吗?或者只是将"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];
}

最好把if子句放在循环中。你试过吗?