2012-02-11 7 views
1

sql querysでエラーを取得するにはmysql_sql_exceptionを使用する必要がありますか、メンバー変数$ errnoと$ errorを使用する必要がありますか?

これは同等ですか?

try { 
    $result = $db->query($query); 
} catch (mysqli_sql_exception $e) { 
    //Error 
} 

// OR 

$result = $db->query($query); 
if ($db->errno != 0) { 
    //Error 
} 

答えて

4

これは、mysqliのエラー報告設定によって異なります。 mysqli_report() functionを使用して変更できます。たとえば、mysqli_report(MYSQLI_REPORT_STRICT);を呼び出すと、警告ではなくエラーのためにmysqli_sql_exceptionがスローされます。

+0

したがって、常に安全なことは '$ errno'をチェックすることです。 mysqli_sql_exceptionはそれ以上のエラー状態を取得せず、レポートレベルの設定に応じていくつかを渡すことができます。私は正しいですよ? –

+0

はい、私は '$ errno'を介してtry-catchと' mysqli_sql_exception'を優先します。それはより現代的な方法です。誰かが知っている、多分mysqli関数は、いくつかの次のPHPバージョンでエラーを生成しません。 – Zyava

関連する問題