目前我正嘗試使用4個單獨的INSERT命令插入4個獨立的表中。只能成功插入所有4個表或者根本不插入
我只希望如果所有4個INSERTS都成功,就會發生這種情況。如果任何INSERT失敗,那麼我不希望將任何數據輸入到數據庫中。
目前我有一個非常醜陋的PHP IF語句,我寧可不包括在這裏,因爲我確定必須有更好的方法。
目前我正嘗試使用4個單獨的INSERT命令插入4個獨立的表中。只能成功插入所有4個表或者根本不插入
我只希望如果所有4個INSERTS都成功,就會發生這種情況。如果任何INSERT失敗,那麼我不希望將任何數據輸入到數據庫中。
目前我有一個非常醜陋的PHP IF語句,我寧可不包括在這裏,因爲我確定必須有更好的方法。
你應該使用事務:
<?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);
回滾聽起來正是我正在尋找的。 非常感謝! –
沒問題,在這裏幫忙。這個答案對你有幫助,請標記爲已接受,以幫助下一個有同樣問題的人。 –
只是試圖在我標記它之前實現它:) –
它被稱爲'transaction':http://www.tutorialspoint.com/sql/ sql-transactions.htm,你肯定不想用客戶端代碼模擬它們。高度不可靠和危險。 –