gpt4 book ai didi

php - 如果尚未添加到数据库,如何获取 ID? (mysql)

转载 作者:太空宇宙 更新时间:2023-11-03 12:05:44 24 4
gpt4 key购买 nike

例如我有两个数据库:

客户表(id自增)

---------------------------------------
----- id ----- name ----- surname -----
----- 1 ----- BOB ----- test1 -----
----- 2 ----- Jhon ----- test2 -----
----- 3 ----- Nick ----- test3 -----
---------------------------------------

和产品表(id不为空,需要手动添加)

---------------------------------------------
----- id ----- product ----- date -----
----- 1 ----- orange ----- 10/10/2014 -----
----- 2 ----- apple ----- 12/10/2014 -----
----- 3 ----- melon ----- 26/10/2014 -----
---------------------------------------------

*EXAMPLE 由我组成,我有更复杂和更大的表。

问题是:

使用一个add.php文件我想添加

姓名 = ____姓氏 = _____

在 GET id 从字段中获取 id 之后,名称和姓氏(来自表 customer )被添加并使用它使用相同的 id 添加产品和日期(到产品表)。

我了解如何向多个表添加信息:HERE

但是如何将信息添加到表 1 以及如何在使用 table1 中的 ID 后添加 tables2 这是我感到困惑的地方。

最佳答案

要插入第一行,请照常使用此查询。

INSERT INTO customer (name, surname) 
VALUES ('Marie', 'Antoinette')

它将为您的连接设置 LAST_INSERT_ID() 值。然后使用此查询插入下一行,其中包含 LAST_INSERT_ID()

INSERT INTO product (customer_id, product, date)
VALUES (LAST_INSERT_ID(), 'Cake', '1770-04-18')

这让您无需显式检索 LAST_INSERT_ID 即可进行第二次插入。但是,如果您有一个客户的多个 product 行,则您的 SQL 中需要一些稍微不同的内容。

INSERT INTO customer (name, surname) 
VALUES ('Marie', 'Antoinette');

SET @custid =: LAST_INSERT_ID();

INSERT INTO product (customer_id, product, date)
VALUES (@custid, 'Cake', '1770-04-18')
INSERT INTO product (customer_id, product, date)
VALUES (@custid, 'Guillotine', '1770-04-19')

这是一种很好的做事方式,因为它可以在一个繁忙的系统上正常工作,在该系统中,多个数据库客户端可能正在插入客户。 LAST_INSERT_ID() 由 MySQL 逐个连接维护。这也很好,因为您不必检索并发回最后插入的 ID 值。

关于php - 如果尚未添加到数据库,如何获取 ID? (mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26689386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com