0

我的情况是我有数据要添加到 MySQL 的两个表 Login 和 Customer Details 中。Zend Framework 2 以一种形式收集数据,同时将数据添加到数据库中。MySQL 中的两个表都有一个 Customer_ID。在两个表中,customer_id 都是自动递增的。我希望通过表单添加数据时,Customer Details 中的 Customer_ID 会自动递增,并将其值复制到登录表 Customer_ID。

到目前为止,我已经尝试使用 LastInserverValue(),我尝试将 Login 的 Customer_ID 设置为 FK,我尝试手动将 customer_ID 分配给 Login,但没有成功。使用上述方法,我只添加了它们,但 Customer_ID 不一样。

注意:数据正在添加而不是更新。

更新:我知道我可以使用最后一个插入 ID,但是因为我为 ZF2 中的两个表使用了两个表网关,所以我无法弄清楚如何从 tablegateway1 到 tablegateway 2 获取最后一个插入值

4

3 回答 3

0

在两个表中,customer_id 都是自动增量

首先从另一个表 LOGIN 中删除 customer_id 的自动增量。使用 tablegateway1 在客户表中插入值并获取最后一个插入值现在使用表 gateway2 在登录表中更新 customer_id 中的此值。

这应该有效。

于 2013-06-07T06:08:22.730 回答
0

正如 Paul Sellars 所提到的,如果您将 AI 从一张表中移除,那么您的问题将得到解决。在定义 AI 的表中,将数据插入它们的第一个并从那里获取 last_insert_id。使用该值,将记录更新/插入到未定义 AI 的另一个表中。

于 2013-08-10T18:09:51.180 回答
0

您的自动增量应该只在客户表上。您可能还可以在登录表上为登录 ID 自动递增,但是将 login.customer_id 设置为外键是完全正确的。

在登录过程中,您要获取 customer.customer_id 然后在登录表中创建插入

例如结构:

顾客

customer_id INT PK, AI

用户名

密码

登录

身份PK,人工智能

customer_id (FK) customer.customer_id

created_at

于 2013-05-30T09:52:21.800 回答