2016-06-07 59 views
1

目前我正嘗試使用4個單獨的INSERT命令插入4個獨立的表中。只能成功插入所有4個表或者根本不插入

我只希望如果所有4個INSERTS都成功,就會發生這種情況。如果任何INSERT失敗,那麼我不希望將任何數據輸入到數據庫中。

目前我有一個非常醜陋的PHP IF語句,我寧可不包括在這裏,因爲我確定必須有更好的方法。

+3

它被稱爲'transaction':http://www.tutorialspoint.com/sql/ sql-transactions.htm,你肯定不想用客戶端代碼模擬它們。高度不可靠和危險。 –

回答

3

你應該使用事務:

<?php 
$conn = mysqli_connect(...) 
mysqli_begin_transaction($conn); 
//do some inserts 
if($insert1 && $insert2 ..) { 
    mysqli_commit($conn); 
} else { 
    mysqli_rollback($conn); 
} 

根據您的數據庫CONFIGS,你應該禁用自動提交:mysqli_autocommit($conn, false);

+0

回滾聽起來正是我正在尋找的。 非常感謝! –

+1

沒問題,在這裏幫忙。這個答案對你有幫助,請標記爲已接受,以幫助下一個有同樣問題的人。 –

+0

只是試圖在我標記它之前實現它:) –