重複キーに少し問題があります。私のコードから始めましょう。
// Prepare to select all liabilities
$stmt = $con->query("TRUNCATE TABLE `Students`");
$stmt = $con->prepare("SELECT student_no, legal_first_name, legal_surname, oen_number FROM csv_students");
$stmt->execute();
$stmt->bind_result($sid, $fname, $lname, $oen);
$stmt->store_result();
$updt = $con->prepare("INSERT INTO Students (Student_ID, Last_Name, First_Name, OEN) VALUES (?, ?, ?, ?) ON DUPLICATE KEY DELETE FROM `Students` WHERE OEN = ?") or die(mysql_error($con)); // Prepare to insert a new liability
$updt->bind_param("ssss", $sid, $lname, $fname, $oen, $oen) or die("Not sending var"); // Bind variables to the result of the query
while($stmt->fetch()){
$updt->execute() or die(mysqli_error($con)); // Execute the query
}
$updt->close() or die("Not closing after send"); // Close the statement
$stmt->free_result();
$stmt->close() or die("Not closing after collection");
そのため、最初のテーブルから変数を取得して 2 番目のテーブルに挿入しようとしていますが、学生ごとに約 4 つのエントリ (クラスごとに 1 つ) があります。基本的に、私はそれらをすべて取得してから、「重複したキーで、同じ oen 番号を持つ最後のエントリを削除します。エラーが発生しています」警告: mysql_error() は、パラメーター 1 がリソースであると想定しています。 /var/www/ride/admin_settings/csv/students/update.php の 23 行目で、ON DUPLICATE KEY のコード部分が表示される行にあります。