ここで私が確信していないコードについて質問したところ、誰かが「ところで、恐ろしいコード:エラー抑制記号(@)を多く使用しています」と答えました。
これが悪い習慣である理由はありますか?のようなもので:
$db=@new mysqli($db_info) or die('Database error');
、カスタムエラーメッセージのみを表示できます。エラーを抑制しないと、次の典型的なPHPメッセージが表示されます。
警告:mysqli :: mysqli():php_network_getaddresses:getaddrinfo failed:そのようなホストは不明です。中にいくつかの\ファイル\パス上のライン6
「データベースエラー」も同様です。
エラー抑制は常に悪いですか、もしそうなら、上記について具体的に何が悪いですか?
更新:私が使用している実際のコードは次のとおりです。
or error('Datatabase error', 'An error occurred with the database' . (($debug_mode) ? '<br />MySQL reported: <b>' . $db->error . '</b><br />Error occurred on line <b>' . __LINE__ . '</b> of <b>' . __FILE__ . '</b>' : ''))
これにより、以前の出力がすべて削除され、エラーメッセージが表示されます。したがって、エラーメッセージに具体的に何が起こったのか(エラー抑制が悪い理由として人々が示唆しているように見える)の詳細が含まれていないという事実は無関係です。
or error('Datatabase error', 'An error occurred with the database' . (($debug_mode) ? '<br />MySQL reported: <b>' . $db->error . '</b>' : ''))