2017-10-06 110 views
0

何時要檢查查詢是否成功完成?通常在代碼中,我看到一個混雜的包,要麼檢查更新/插入/刪除語句是否成功完成(例如if ($query) { echo 'success' }或根本沒有檢查。何時檢查查詢是否成功完成

我用Google搜索瞭解推薦的選項是什麼,但沒有找到任何而且我也意識到這個問題是非常主觀的,取決於數據的敏感程度,但同時,除非編碼人員開始使用嚴重的格式錯誤的查詢,否則檢查查詢是否完成的要點是什麼?

if ($user->update_user($this->input->input_stream(), $info) === false) { 
    encode_response('error', $this->n_config->get('query_error')); 
} else { 
    encode_response('success', Auth_lang::get('user_updated_successfully')); 
} 
+0

A)使用例外,所以你不能忘記測試錯誤。 B)嘗試並從函數中返回邏輯上的真值以指示成功。 C)當簡單否定可行時,避免像'===假'這樣的比較。 D)不要設置雙重否定條件,比如這個'else'代表「如果更新沒有成功」。 – tadman

+0

@tadman這與我的問題有什麼關係? – Alex

+0

你需要一個同樣的東西的長形式?代碼是不同的,因爲有些人懶惰,並沒有花時間做正確的事情。如果您認爲查詢成功,在很多情況下,您可能是對的,代碼「有效」。當事情出錯時,除非您測試每個查詢的結果代碼,否則您將不知道發生了什麼故障。因此:使用例外。 – tadman

回答

2

始終。始終。始終檢查錯誤。你canno假設一個查詢成功了,然後盲目地踏上下一步,否則最終會發生不好的事情。

檢查錯誤的最簡單方法是自動檢查所有內容:啓用異常。如果出現問題,這些將被解僱,您不必手動檢查每個電話。但是,您將需要弄清楚這些方法以及在哪裏,以便它們不會炸燬整個應用程序。

程序員來自不同的背景,對如何做這些事情有不同的看法,有些人懶得打擾他們做這些事情。在C代碼中,沒有例外的東西,所以這些開發人員被用來測試錯誤代碼。在Java中,異常是它們所提供的生態系統的一個嵌入式部分,並且人們明智地使用它們。

PHP不確定它是一種什麼樣的編程語言,如果你想和錯誤代碼,你可以使用例外,如果這更多的是你的風格。這就是爲什麼你看到這些事情的方法多樣化的原因。