gpt4 book ai didi

php - 为多个表编写 INSERT 查询

转载 作者:行者123 更新时间:2023-11-30 00:06:48 26 4
gpt4 key购买 nike

我正在编写一个食谱数据库应用程序,并且对数据库架构进行了排序,但我并不费力去弄清楚要编写什么查询来将食谱插入数据库。

我有3张 table

成分成分_id...

食谱食谱 ID ...

食谱(数据透视表)成分_id菜谱_id

但据我了解,一次只能将数据插入到一张表中。

这就是我的问题所在。如果我有一个表格来输入菜谱,如何添加分成 3 个表的菜谱?我是否使用多个查询?如果是这样,我如何保证它们会匹配。

抱歉,如果这听起来像是一个愚蠢的问题,但它正在煎熬我的大脑,提前感谢您的反馈。

致以诚挚的问候

最佳答案

您可以通过将公共(public)值分配给适当的列来保证行彼此相关。

如果您决定将 recipes 中的 recipe_id 列定义为 AUTO_INCRMENT,并且您插入的行已将生成的值分配给该列,则可以使用LAST_INSERT_ID() 函数检索分配给列的值

INSERT INTO recipes (recipe_id, col2, col3) VALUES (NULL, 'fee', 'fi');

如果插入语句成功,您可以通过执行如下语句来检索分配给recipe_id列的值(在同一MySQL session 中,在执行任何其他语句之前):

SELECT LAST_INSERT_ID() AS recipe_id;

注意:一些 MySQL 客户端库具有为您执行此操作的方法/函数,因此您可以检索该值,而无需在代码中准备和执行另一个 SQL 语句,例如

PDO::lastInsertId 引用:http://www.php.net/manual/en/pdo.lastinsertid.php

mysqli::$insert_id 引用:http://www.php.net/manual/en/mysqli.insert-id.php

例如,您可以将 INSERT 中返回的值提供给关联表

INSERT INTO recipe_ingredient (recipe_id, ... ) VALUES ( 42, ... )

关于php - 为多个表编写 INSERT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24472362/

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