mySQL: вставить значения в 2 таблицы с отношением внешнего ключа - PullRequest
0 голосов
/ 06 июля 2018

Я создал 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-Query выглядит так:

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

К сожалению, запрос не работает, потому что вы не можете использовать 2 таблицы после команды INSERT, как в моем примере.

Есть какие-нибудь решения, как это решить? Я просто не могу придумать, как сделать так, чтобы все, что пользователь вводит в поля формы, было сохранено как 1 набор данных в этих 2 таблицах, т.е. НОВЫЕ данные в дочерней таблице 'mobilfunkkarten' будут связаны с Номер первичного ключа в родительской таблице 'mitarbeiter'.

mitarbeiter = рабочие mobilfunkkarten = карты для мобильных телефонов (SIM-карты)

1 Ответ

0 голосов
/ 06 июля 2018

Сначала вставьте сотрудников.

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

Затем вставьте SIM-карту. Используйте last_insert_id(), чтобы получить идентификатор, созданный для записи сотрудника.

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