情况:我有3张桌子: 人(peopleID,firstName,lastName), phoneNumbers(phoneID,countryCode,areaCode,phoneNumber,extension) 和peoplePhoneNumbers(peopleID,phoneID)(这是一个带有多个关系的外键的联结表)。
使用一种表格更新所有内容。
目标:假设我有: 约翰史密斯201 1111111 23, 如果我输入: Paul Lennon 201 1111111 23(同一个电话号码) 系统应该: 1)在表人中创建一个新行(使用新ID) 2)不要在桌面电话中创建新行并返回已用于同一电话号码的ID。 (2个电话号码相同,他们应该有相同的区号,相同的号码和相同的分机号。)
这是我到目前为止的代码:
mysqli_query($link, "SET AUTOCOMMIT=0") or die(mysqli_error($link));
mysqli_query($link,"START TRANSACTION") or die(mysqli_error($link));
$sql1 = "INSERT INTO tbl_people (firstname, lastname)
VALUES ('$firstname', '$lastname');";
$sql2 ="INSERT INTO tbl_PhoneNumbers (AreaCode, PhoneNumber)
VALUES ('$areamobile', '$mobile');";
mysqli_query($link, $sql1) or die('Error: ' . mysqli_error($link));
$last_people_id = mysqli_insert_id($link);
mysqli_query($link, $sql2) or die('Error: ' . mysqli_error($link));
$last_phone_id = mysqli_insert_id($link);
$sql3 ="INSERT INTO tbl_peoplephonenumbers (peopleID, phoneID)
VALUES ('$last_people_id', '$last_phone_id');";
mysqli_query($link, $sql3) or die(mysqli_error($link));
header("Location: index.php?act=edit&people_id=$last_people_id"); /*after adding new person goes to edit page*/
mysqli_query($link, "COMMIT") or die(mysqli_error($link));
mysqli_query($link, "SET AUTOCOMMIT=1") or die(mysqli_error($link));