點擊提交訂單的時候,如何讓這兩張表同時產生,order_goods表中,order_id,goods_id分別是order表和goods表的外鍵,,怎樣才能做到,沒思路
回複內容:
點擊提交訂單的時候,如何讓這兩張表同時產生,order_goods表中,order_id,goods_id分別是order表和goods表的外鍵,,怎樣才能做到,沒思路
商品表已經有了,所以在下單時插入訂單表,同一事務內再插入訂單商品表。由於外鍵,只能先訂單後訂單商品。
mysql無法實現同時插入兩個表的,可以用事務保證一致性。
同問
怎樣判斷插入訂單表操作成功了呢?
就是說,插入訂單表和插入訂單商品表要同時執行成功哦
用到什麼特別的知識嗎
這樣行嗎
先擷取插入訂單執行後的id,如果訂單表id是自增的,執行成功會返回插入成功這行記錄的id,如果插入失敗,則返回0,然後我根據這個id判斷是不是需要執行插入訂單商品表的操作?
是這樣的嗎?
如果資料表沒用主外鍵的話 就用兩條sql語句吧
以倆個插入的id是否同時為正判斷是否插入成功
如果某一個插入不成功 刪除插入成功的資料
可以使用mysql的事務來保證資料的一致性;
$handler=mysql_connect("localhost","root","password");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");//設定為不自動認可,因為MYSQL預設立即執行
mysql_query("BEGIN");//開始事務定義
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROLLBACK");//判斷當執行失敗時復原
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROLLBACK");//判斷執行失敗復原
}
mysql_query("COMMIT");//執行事務
mysql_close($handler);