首页 > 解决方案 > mySQL:将值插入具有外键关系的 2 个表中

问题描述

我创建了 2 个具有以下结构的表:

mitarbeiter
==================
maID (PK, AUTO_INCREMENT, NOT NULL)
maAnrede
maName
maVname
maDurchwahl
maEmail
maMobilfunkNr
maKartenanzahl
maFirma

mobilfunkkarten
==============================
mfkID (PK, AUTO_INCREMENT, NOT NULL)
mfkTarif
mfkStatus
mfkKartennr
mfkPin
mfkSuperpin
maID(FK)

现在我希望网络用户在表单字段中输入值。点击“保存”按钮后,数据将保存到对应的2个表中。我的 mySQL 查询看起来像这样:

INSERT INTO mitarbeiter,mobilfunkkarten
(maAnrede, maVname, maName, maMobilfunkNr, mfkTarif, maKartenanzahl, mfkStatus, mfkkartennr, mfkPin, mfkSuperpin, maEmail, maFirma) 
VALUES($anrede, $Vorname, $Nachname,.......);

不幸的是,查询不起作用,因为您不能像我的示例中那样在 INSERT 命令之后使用 2 个表。

关于如何解决这个问题的任何解决方案?我只是想不出任何方法来确保用户在表单字段中输入的任何内容都将作为 1 个数据集保存到这 2 个表中,即子表“mobilfunkkarten”中的新数据将与父表“mitarbeiter”中的主键编号。

mitarbeiter = 工人 mobilfunkkarten = 手机卡(SIM 卡)

标签: phpmysqlsqldatabaseinsert

解决方案


首先插入员工。

INSERT INTO mitarbeiter
            (maanrede,
             ...)
            VALUES(?,
                   ...);

然后插入 SIM 卡。用于last_insert_id()获取为员工记录创建的 ID。

INSERT INTO mobilfunkkarten
            (mfktarif,
             ...,
             maID)
            VALUES (?,
                    ...,
                    last_insert_id());

推荐阅读