[英]How to add values simultaneously to the two related tables in MySQL?
我有這兩個表:
我也有一個動態表格,其中包含表格,用戶可以添加行,並且來自表格的數據將以tblcamealsformdetails
插入,但是插入tblcamealsformdetails
的基礎是tblcamealsform
的id。 如何將所有值同時插入到兩個表中?
這是我的表格:
您將首先在表tblcamealsform中輸入數據。 您從該查詢插入ID。 然后,您將使用該ID在表tblcamealsformdetails中插入其余數據以及插入ID。
因此,您不能同時執行此操作。 您首先添加依賴項。
要從上一次執行的查詢中獲取插入ID,您將需要mysql_insert_id()。 見http://php.net/manual/en/function.mysql-insert-id.php
在回答評論時,如果多個用戶同時使用該表格會發生什么:
由於您在腳本頂部打開了一個mysql連接,這將導致唯一的連接指針,並且您調用的所有mysql函數都會自動引用該指針,我認為mysql_insert_id()將始終引用當前連接執行的最新查詢。 因此,另一個用戶的另一個線程不會對此造成干擾。
請注意,我對此不是100%肯定。
無論如何:我已經使用了大約10年,其中有些包括高流量網站,使用該方法我從未遇到過任何問題,因此,我認為您可以放心使用它。
對此有一個例外:必須始終在執行想要ID的查詢后立即調用mysql_insert_id()。 如果在此期間執行任何其他查詢(例如,調用另一個執行插入查詢的對象的方法),則mysql_insert_id()將返回該查詢的ID。 這是我過去犯的錯誤,您必須意識到。
我想用LAST_INSERT_ID
指向您:
當執行多行插入時,LAST_INSERT_ID()將返回插入的第一行(而不是最后一行)的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.