mysqli_connect()
の PHP マニュアルでは、戻り値を確認し、画面にエラー メッセージを表示することを推奨しています。
同様に、OOP スタイルのコンストラクターの場合、これをお勧めします:
リーリー Stack Overflow の一部のユーザーは、次のような mysqli_error($conn)
を含むコードさえ使用しています。
リーリー
警告: mysqli_connect(): (HY000/1045): ユーザー アクセスが拒否されました 'my_user'@'localhost' (パスワードを使用: YES) C:xampp...mysqli.php 行 4エラー: MySQL に接続できません。デバッグ エラー番号: 1045 デバッグ エラー: ユーザー "my_user"@"localhost" のアクセスが拒否されました (パスワードを使用: はい)###
ご覧のとおり、エラー メッセージが 2 回表示されます。手動の「デバッグ」では実際に得られる情報は少なくなります。
接続エラーを手動で確認する必要がありますか?この方法で、自動警告よりも多くの情報を取得できますか?これは推奨される方法ですか?
接続エラーを手動で表示しないでください。
MySQLi は、MySQL への接続を開けない場合に警告を生成します。この警告は、エラー コード、エラー メッセージ、コード内のエラーが発生した場所など、知る必要があるすべてを示します。手動でエラーをチェックしても、それ以上の情報は得られません。
警告が表示されず接続を作成できない場合は、おそらく、PHP が警告を表示するように構成されていないことを意味します。この場合、サーバー上のエラー ログ ファイルを確認する必要があります。場所がわからない場合は、
phpinfo() code>
を使用して情報を取得し、error_log
を検索してください。エラー ログ ファイルの場所がわかります。エラー ログに警告がない場合は、おそらく PHP エラー報告が (完全に、または警告だけで) 停止されていることを意味します。 PHP の設定を確認してください。
本番環境では、次の設定を保持する必要があります:
error_reporting
はE_ALL
log_errors
有効にする必要があります
display_errors
MustClose
開発環境では、次の設定を保持する必要があります:
は
E_ALLである必要があります
display_errors
警告と例外を常にオフにする必要があります。エラーをサーバーに記録しても安全です。
die/exit
例外の処理方法を本当に理解していない限り、例外をキャッチしないでください。は使用しないでください。
mysqli 接続を確立できない場合は、例外がスローされる必要があります。例外が処理されない場合、バブルが発生し、致命的なエラーでスクリプトが停止します。自動的に例外をスローするように mysqli を構成できます。すべての mysqli 関数はさまざまな理由で失敗する可能性があり、関数内の各エラーを手動でチェックしない限り問題は通知されないため、これは非常に貴重です。接続を開く前に次の行を使用します: リーリーmysqli を使用して正しく接続する方法考えられる使用例については、次のセクションで説明します。
mysqli_error()
mysqli_error($conn)接続関連の問題を示していただけますか?
###いいえ。mysqli 接続は成功すると予想されます。
$conn->error$conn
は有効な mysqli 接続である必要があります。そうでない場合は、次のエラー メッセージが表示されます:も
mysqli_error($conn)
も、接続関連のエラーを表示できません。関連:
「mysqli_stmt_prepare」を呼び出すときにエラーを手動で確認する必要がありますか?