首页 > 解决方案 > 如何使用 mysqli 和 PHP 插入和删除链接的 MySQL 表?

问题描述

我有三个表:all_students、all_parents 和 students_parents(这是链接表)。

我插入这样的条目:

$sql = "INSERT INTO all_students (name, email) VALUES (?,?);";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
if (mysqli_connect_errno()) { 
    $conn->close(); 
    echo "Error: ". mysqli_connect_error();
    exit;
}
$last_student_id = $conn->insert_id;

// get the parents $name and $email from POST data...
$sql = "INSERT INTO all_parents (name, email) VALUES (?,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
if (mysqli_connect_errno()){ 
    $conn->close(); 
    echo "Error: ". mysqli_connect_error(); 
    exit; 
}
$last_parent_id = $conn->insert_id;

// insert both parentid and studentid into students_parents table
$sql = "INSERT INTO students_parents (student, parent) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $last_student_id, $last_parent_id);
$stmt->execute();
// close, etc..

如果我想从 all_students 中删除一个学生,有没有办法从 FUTURE 中的 students_parents 表中自动删除父项和学生 ID 条目。还是我必须再次从表中选择并找到 id 然后删除?

另外,有没有更好的方法来做到这一点,或者我的方法现在可以接受吗?

P/SI 知道有些学生没有父母,但为了简单起见,我只是将“父母”作为表名。它可能是监护人,而不是真正的父母。

标签: phpmysql

解决方案


推荐阅读