簡體   English   中英

在zf2上同時在2個表上添加數據

[英]add data on 2 table at the same time zf2

我有兩個桌子

表出售:

 id_sale    int
 id_projet  int
 price      float
 date       date

表sale_ligne:

id_sale_ligne  int
id_sale        int FK_SALE
id_projet      int
price          float
date           date

即時消息問我制作新記錄時如何在具有相同id_sale的sale_line上插入記錄。 我知道這是一個很大的問題,但我確實陷在這里,我可以在ZF官方文檔中找到此示例,因此任何人都可以幫助我提出建議或提供完整示例的參考來解釋我的情況

萬分謝意

有幾種方法可以做到這一點。 最簡單的方法可能是在首次插入sale后僅執行另一個SQL查詢。 您可以執行以下操作:

// Insert sale and get the ID
$this->dbAdapter->query('INSERT INTO sale (price, date) VALUES (?, ?)', array('price', 'date'));
$salesId = $this->dbAdapter->getDriver()->getLastGeneratedValue();

$this->dbAdapter->query('INSERT INTO sale_ligne (price, date, id_sale) VALUES (?, ?, ?)', array('price', 'date', $salesId));

請不要在上面的示例中省略了錯誤處理。 假設您正在對sale表中的主鍵使用自動遞增,則getLastGeneratedValue方法將返回最后生成的ID。

或者,您可以使用LAST_INSERT_ID()在存儲過程中執行相同的操作。 由於表的性質,您可能需要指定要插入到sale_ligne表中的數據(即,值不等於默認列值)。 否則,可能可以在sale表上添加一個插入觸發器,然后在該觸發器內進行插入。 但是,第一種方法或在存儲過程中將更易於實現,並為您提供更多控制權,並使其他開發人員更容易理解流程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM