Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mySQL:将值插入具有外键关系的两个表中_Php_Mysql_Sql_Database_Insert - Fatal编程技术网

Php mySQL:将值插入具有外键关系的两个表中

Php mySQL:将值插入具有外键关系的两个表中,php,mysql,sql,database,insert,Php,Mysql,Sql,Database,Insert,我创建了两个具有以下结构的表: mitarbeiter ================== maID (PK, AUTO_INCREMENT, NOT NULL) maAnrede maName maVname maDurchwahl maEmail maMobilfunkNr maKartenanzahl maFirma mobilfunkkarten ============================== mfkID (PK, AUTO_INCREMENT, NOT NULL) m

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

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)
现在,我希望web用户在表单字段中键入值。单击“保存”按钮后,数据将保存到相应的2个表中。 我的mySQL查询如下所示:

INSERT INTO mitarbeiter,mobilfunkkarten
(maAnrede, maVname, maName, maMobilfunkNr, mfkTarif, maKartenanzahl, mfkStatus, mfkkartennr, mfkPin, mfkSuperpin, maEmail, maFirma) 
VALUES($anrede, $Vorname, $Nachname,.......);
不幸的是,查询不起作用,因为不能像我的示例中那样在INSERT命令之后使用2个表

有什么解决办法吗?我想不出任何方法来确保用户在表单字段中键入的任何内容都将作为一个数据集保存到这两个表中,即子表“mobilfunkkarten”中的新数据将与父表“mitarbeiter”中的主键号相关

米塔贝特=工人
mobilfunkkarten=手机卡(SIM卡)

首先插入员工

INSERT INTO mitarbeiter
            (maanrede,
             ...)
            VALUES(?,
                   ...);
然后插入SIM卡。用于获取为员工记录创建的ID

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

这将需要两个查询,因为您需要从相关行获取密钥才能插入父行。您可以在事务中执行此操作,以便在出现故障时回滚插入。此外,请确保对mysqli或PDO函数使用参数化查询,以避免SQL注入并正确处理引号。有关如何从INSERT@SloanThrasher:首先,谢谢你。不过,请不要让我们担心SQL注入。我正在使用一个模板引擎,为我做所有的工作。我所需要的就是上面提到的问题的SQL查询语法。这个语法对我很有用。谢谢!也许您应该删除/删除帖子中不必要的代码,如“mamobilfunkr,mfkTarif,…”,以对其进行总结。