如何在兩個表中同時插入資料

來源:互聯網
上載者:User
關鍵字 php mysql

點擊提交訂單的時候,如何讓這兩張表同時產生,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);

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.