首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从具有主键自动增量的表中向具有外键的表插入数据?

如何从具有主键自动增量的表中向具有外键的表插入数据?
EN

Stack Overflow用户
提问于 2015-11-28 17:05:01
回答 1查看 47关注 0票数 0

我有4个mySQL表,包含以下条目:

代码语言:javascript
复制
user
-user_id PK,AI
-user_name
-user_mobil
-user_passw
-user_email

bookingdetails
-booking_id PK,AI
-booking_date
-booking_time
-person_number

booking
-booking-_id FK
-restaurant_id CK
-user_id CK

restaurant
-restaurant_id PK
-restaurant_name
-restaurant_address
-restaurant_description

我想做一个预订,我插入所有的预订细节数据,这给我一个AI booking_id,然后我想要制作我的预订表,并插入restaurant_id和user_id与相同的booking_id是由bookingdetails表提供的。

为了在本地服务器上使用php实现这一点,我编写了以下代码:

代码语言:javascript
复制
 $booking_date=$_POST["booking_date"];
 $booking_time=$_POST["booking_time"];
 $number_of_place=$_POST["number_of_place"];
 $customer_id=$_POST["customer_id"];
 $restaurant_id=$_POST["restaurant_id"];
 $res;


 $sql_query = "INSERT INTO bookingdetails(booking_date, booking_time, number_of_place) VALUES ('$booking_date','$booking_time', '$number_of_place')";
 $sql_query2 = "INSERT INTO `booking`(`booking_id`, `customer_id`, `restaurant_id`) SELECT booking_id, '$customer_id', '$restaurant_id' FROM   bookingdetails ORDER BY booking_id DESC LIMIT 1 ;";


 if(mysqli_query($con,$sql_query))
 {


 }
 else
 {


 }



 if(mysqli_query($con,$sql_query2))
 {


 }
 else
 {


 } 



 ?>

这是连接到Android应用程序的服务器上的合法解决方案吗?是否有任何情况,我没有得到好的id在第二个查询?什么是更好的解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-28 17:38:59

@Mark评论中的答复

使用最后插入id,标准是您的pk必须是AI。

mysqli_insert_id()函数返回上次查询中使用的id (用AUTO_INCREMENT生成)。

来源: w3schools.com/php/php_mysql_insert_lastid.asp

将详细介绍

您必须执行需要最后插入id的查询,然后可以使用

代码语言:javascript
复制
 $last_id = $conn->insert_id;

然后,您可以将其用于以下查询。

注:

我看到您使用一个查询来使用插入查询的结果,但是语法不正确(您缺少的values)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33974002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档