php - 如何获取在 MySQL 中创建的生成外键以用于插入函数
问题描述
我正在运行以下 PHP,因为我想将表单中的数据插入到 2 个表中:EventLocation 和 Events(EventLocationID 是表事件中的外键)。首先,我运行一个 INSERT 查询以插入 EventLocation。由于 EventLocationID 是自动递增的,它会生成下一个 ID,而无需我输入任何内容。我的问题是我应该如何获取这个唯一 ID 以在下一个 INSERT 查询中使用以插入事件?
请注意,第一个查询插入正常,但第二个查询给了我一个错误
PHP:
<?php
require '../dbh.inc.php';
$Event_Name = $_POST['Event_Name'];
$Event_Date = $_POST['Event_Date'];
$Street_1 = $_POST['Street_1'];
$Street_2 = $_POST['Street_2'];
$City = $_POST['City'];
$Start_Time = $_POST['Start_Time'];
$End_Time = $_POST['End_Time'];
$Zipcode = $_POST['Zipcode'];
$query = "INSERT INTO EventLocation (Street_1, Street_2, City, Zipcode) VALUES ('$Street_1', '$Street_2', '$City', '$Zipcode')";
$queryexecution = mysqli_query($conn, $query);
if(!$queryexecution){
echo "damn, there was an error inserting into Event Location";
}
else {
echo "Event Location was added!";
}
$querytwo = "SELECT EventLocationID from EventLocation where Street_1 = '$Street_1';";
$querytwoexecution = mysqli_query($conn, $querytwo);
while ($displayname = mysqli_fetch_assoc($querytwoexecution)){
echo "<h1>".$displayname['EventLocationID']."</h1>";
}
$secinsert = "INSERT INTO events (Event_Name, Event_Date, Start_Time, End_Time, EventLocationID) VALUES ('$Event_Name','$Event_Date','$Start_Time','$End_Time', '$displayname')";
$secqueryexecution = mysqli_query($conn, $secinsert);
if(!$secqueryexecution){
echo "damn, there was an error inserting into Events";
}
else {
echo "Event data was added!";
}
?>
我很想知道我是否可以使用 Inner Join 函数来提高效率;我以前试过但没有成功?
解决方案
推荐阅读
- python - 递归地抓取 URL 及其 URL
- kotlin - 为什么 Kotlin 序列在少量元素上表现如此糟糕?
- javascript - 动画后部分显示波段
- javascript - 从 TypeScript 调用 JavaScript 类:Uncaught TypeError ... 不是构造函数
- drupal - 带有 get 参数的 Drupal RSS 视图
- nlp - Python Mallet LDA Errno 2 没有这样的文件或目录
- ruby - 使用 RVM 在 OSX 10.15.2 Catalina 中安装 Ruby 2.3.8 时出错;未找到 OpenSSL
- javascript - 材质 UI 垂直滑块。如何在垂直材质UI Slider(React)中更改导轨的厚度
- android - 无法将图像拖到卡片视图之外
- firebase - firebase 中的自定义域:无法在我的 .com.bd 域中获取 TXT 记录类型