Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 插入新记录时将一个ID从一个表插入另一个表_Php_Mysql_Insert - Fatal编程技术网

Php 插入新记录时将一个ID从一个表插入另一个表

Php 插入新记录时将一个ID从一个表插入另一个表,php,mysql,insert,Php,Mysql,Insert,我有一个表格,其中包含一个员工个人信息。我更新表单,并将其插入名为employee\u info的表中。它使用详细信息更新表并插入新ID(employee\u ID)。在我的数据库中,我有另一个名为department\u info的表,相关字段是department\u id。这是php标记,用于将数据插入数据库: $sql_data_array = array('employee_firstname' => $employee_firstname); //other variables

我有一个表格,其中包含一个员工个人信息。我更新表单,并将其插入名为
employee\u info
的表中。它使用详细信息更新表并插入新ID(
employee\u ID
)。在我的数据库中,我有另一个名为
department\u info
的表,相关字段是
department\u id
。这是php标记,用于将数据插入数据库:

$sql_data_array = array('employee_firstname' => $employee_firstname); //other variables go here

if (ACCOUNT_DOB == 'true') $sql_data_array['driver_dob'] = tep_date_raw($driver_dob);

tep_db_perform(TABLE_EMPLOYEES, $sql_data_array);

$employee_id = tep_db_insert_id();
我需要做的是,当表单被更新,并且数据被插入到
员工信息
表中时,我需要它为
员工id
插入一个新id(这已经发生了),并且将
部门id
插入
员工信息
表中


department\u id
用于登录,我想显示属于该部门的员工列表。有人能告诉我怎么做吗?

当您使用PHP插入时,大多数实现都返回所谓的最后一个插入id。这是一个AUTO_INCREMENT列的值

即使您的实现不支持它,也应该有一个函数返回它

编辑:
从您的更新来看,这似乎是osCommerce。代码中的问题是使用方法tep_db_perform插入一个或多个元素。如果插入两行,会发生什么情况?但在简单的情况下,使用tep_db_insert_id(),它应该返回最后一个id。

php函数mysqli_insert_id检索上一个查询(通常是insert)为自动增量列生成的id。获取此id并在其他表中使用。

我已经包含了插入employee表的代码,请您显示代码,以便回答。我建议使用触发器,而不是用php编码。我不打算写你的触发器,但我只是给你一些考虑。@斯考克,我认为将业务逻辑与数据库混合是个坏主意。我们应该使事情尽可能简单明了。如果您需要为Oracle或NoSQL更改MySQL数据库,会发生什么?将业务逻辑与数据库混合是一个坏主意?那么,触发器是什么呢?什么是约束?