2016-04-24 58 views
0

我目前正在開發一個網站項目。現在在我的sign.php文件中,至少需要完成5個sql語句。通常我使用mysqli_query函數,如果它不返回false,則傳遞下一個函數。但是如果其中一個返回錯誤呢?以前的陳述是okey,但其餘的將失敗。所以用戶不能完全登錄到系統,只有數據庫的一半被更新。如何在PHP中處理多個MySQL操作(如果發生故障)

if(mysqli_query($con, $sql)) 
{ 
    //do the next one 
} 
else 
{ 
    //everything messed up 
} 

這種方式並不讓我感到困惑。該算法質量差。我不知道如何處理這個問題。我可以遵循什麼來實施這些操作?

注意:所有操作都不同。我必須使用SELECT,INSERT,CREATE,UPDATE ... 注2:如果錯過了某些內容,我可以編輯該問題。

回答

2

您可以使用SQL transactions來確保如果您的任何查詢都無法更改由先前的查詢所做的數據庫回滾。

+0

這聽起來很酷所以是嵌套5,如果好的做法? – kimdirbilmem

+0

通常情況下,你不想嵌套它們。最好的選擇是告訴mysqli [拋出異常](http://stackoverflow.com/questions/14578243/turning-query-errors-to-exceptions-in-mysqli),然後有一個「catch」塊來處理所有意外的失敗。 – Chris

+0

爲什麼我不這麼認爲?兩者都是我正在尋找的東西。我真的很感謝你... – kimdirbilmem