2013-05-30 127 views
0

我的情況是,我有兩個表中添加數據登錄和客戶詳細信息在MySQL。數據由Zend Framework 2一個表單收集,並同時添加到數據庫中。 MySQL中的這兩個表都有一個Customer_ID。在這兩個表的CUSTOMER_ID爲自動increment.I想它是這樣的,當利用的形式,客戶詳細信息添加數據的CUSTOMER_ID被自動遞增並將其值複製到登錄表CUSTOMER_ID。Zend框架2和MySQL查詢

到目前爲止,我已經用LastInserverValue()嘗試過了,我試圖讓Login的Customer_ID成爲FK,我試圖手動分配customer_ID來登錄而沒有運氣。 隨着我用他們只添加,但CUSTOMER_ID是不一樣的上述方法。

注:正在添加的數據沒有更新。

更新:我知道我可以使用最後一個插入ID,但因爲我使用兩個tablegateways在ZF2兩個表我無法弄清楚如何從tablegateway1獲得最後插入值tablegateway 2

回答

0

你的汽車增量應該只在客戶表上。您也可以在登錄表上爲登錄ID自動增加一個值,但將login.customer_id設置爲外鍵是非常正確的。

在你想要得到的customer.customer_id然後創建一個插入到登錄表

例如,結構登錄過程:

客戶

CUSTOMER_ID INT PK,AI

FIRST_NAME

姓氏

用戶名

密碼

登錄

ID PK,AI

CUSTOMER_ID(FK)customer.customer_id

created_at

+0

感謝保羅的答案。但是,如果所有值都一起更新,我怎麼才能獲得customer.customer_Id。我知道我可以使用最後一個插入ID,但因爲我在ZF2中爲兩個表使用了兩個表格門,所以我無法弄清楚如何從tablegateway1到tablegateway 2獲取最後一個插入值。 – snab

+0

所以這是一個登錄表單而不是登錄形成? –

0

在這兩個表中,customer_id都是自動增量

首先從另一個表LOGIN中刪除customer_id的自動增量。 使用tablegateway1在Customer Table中插入值並獲取最後一個插入值 現在使用表gateway2在customer_id的Login表中更新此值。

這應該工作。

0

正如保羅·塞拉斯所說,如果你將從一個表中刪除AI,那麼你的問題將得到解決。在定義AI的表格中,將數據插入到第一個數據中,然後從那裏獲取last_insert_id。使用該值,將記錄更新/插入另一個沒有定義AI的表中。