データベース操作にPHPを使用する場合、多くの場合、MySQLデータベースに接続する必要があります。このプロセス中に、接続エラーに遭遇する可能性があります。これらのエラーの診断と処理を支援するために、PHPは2つの非常に有用な機能を提供します: mysqli_connect_errno()とmysqli :: $ errno 。この記事では、これら2つの機能を組み合わせてデータベース接続エラーを取得および処理する方法について説明します。
mysqli_connect_errno()は、最後のデータベース接続エラーコードを取得するためのPHPの関数です。この関数は、MySQLデータベースに最後に接続したときに遭遇したエラーコードを示す整数値を返します。この関数を通じて、データベース接続の障害の特定の理由を知ることができます。
mysqli_connect_errno();
エラーが発生しない場合、 mysqli_connect_errno()が0を返します。それ以外の場合、エラータイプを表す整数値を返します。
mysqli :: $ errnoは、最後の操作で遭遇するエラーコードを取得するために使用されるmysqliクラスのプロパティです(必ずしも接続操作ではありません)。これは、データベース接続オブジェクトからアクセスできるオブジェクトプロパティです。
$mysqli->errno;
mysqli_connect_errno()と同様に、エラーが発生しない場合、 mysqli :: $ errnoの値は0になります。それ以外の場合、エラーを表す整数値が含まれます。
データベースが接続されているときにエラーコードをチェックし、エラーコードに基づいて対応するエラー処理を実行することにより、これら2つの機能を組み合わせて使用できます。これにより、接続障害の原因を正確に見つけるだけでなく、エラーが発生したときに適切に応答することもできます。
<?php
// データベースに接続します
$mysqli = new mysqli("m66.net", "username", "password", "database_name");
// 接続が成功しているかどうかを確認してください
if ($mysqli->connect_errno) {
// 接続が失敗した場合,出力エラーメッセージ
echo "接続に失敗しました: " . $mysqli->connect_error;
exit();
}
// 接続が成功した後,私たちは引き続き照会することができます
$query = "SELECT * FROM table_name";
$result = $mysqli->query($query);
// クエリが成功したかどうかを確認してください
if ($mysqli->errno) {
// クエリが失敗した場合,出力エラーコードとエラーメッセージ
echo "クエリに失敗しました,エラーコード: " . $mysqli->errno . ",エラーメッセージ: " . $mysqli->error;
} else {
// クエリが成功しました,処理結果
while ($row = $result->fetch_assoc()) {
echo $row['column_name'] . "<br>";
}
}
// データベース接続を閉じます
$mysqli->close();
?>
上記のコードでは、最初にデータベースに接続し、 Connect_Errnoをチェックして、接続が成功したかどうかを確認します。接続が失敗した場合、 $ mysqli-> connect_errorは特定のエラーメッセージを返し、問題をすばやく見つけることができます。接続が成功した場合、SQLクエリ操作を引き続き実行し、クエリ中にエラーがあるかどうかを確認します。エラーが発生した場合、 $ mysqli-> errnoを介して特定のエラーコードを取得し、 $ mysqli->エラーを使用して詳細なエラー情報を取得します。
1045-ユーザーのアクセスが拒否されました
このエラーは通常、データベース接続資格情報(ユーザー名またはパスワード)エラーを示します。
2002-ソケットを介してローカルMySQLサーバーに接続できません
このエラーは通常、MySQLサーバーを指定されたソケットに接続できない場合に発生します。これは、MySQLサービスが開始されていないか、構成エラーが発生している可能性があります。
1049-不明なデータベース
このエラーは、指定されたデータベースが存在しない場合に発生します。
mysqli_connect_errno()とmysqli :: $ errnoを組み合わせることにより、データベース接続でエラー情報を効果的に取得および処理できます。どちらも独自の強調を持っています。 mysqli_connect_errno()は主に接続エラーの処理に使用されますが、 mysqli :: $ errnoは、より広い範囲の操作エラー処理に適しています。実際の開発では、これら2つがデータベース操作をより堅牢にする方法をマスターし、接続エラーの迅速なトラブルシューティングと解決に役立ちます。