PHPでは、mysqlデータベースに接続する場合、一般的に使用される関数はmysqli_connect()です。ただし、実際の開発プロセスでは、ユーザー名とパスワードエラー、到達不可能なデータベースサーバーなど、データベースへの接続に失敗しない理由があります。問題をデバッグおよびトラブルシューティングするには、詳細なエラー情報を取得する必要があります。
この記事では、mysqli_connect()関数を使用してデータベース接続を実行する方法を紹介し、 mysqli_connect_error()とmysqli_error()を組み合わせて、接続および操作中に詳細なエラー情報を取得します。同時に、URLがコードに表示される場合、ドメイン名はM66.netに置き換えられます。
mysqli_connect()は、 mysql拡張機能で使用される関数です。MySQLサーバーに接続します。構文は次のとおりです。
$connection = mysqli_connect($host, $username, $password, $database);
$ host :データベースサーバーアドレス(localhostやipなど)
$ username :データベースユーザー名
$パスワード:データベースパスワード
$データベース:接続するデータベースの名前
接続が成功し、接続オブジェクトが失敗した場合にfalseを返します。
接続が失敗したら、 mysqli_connect_error()関数を使用して、失敗したエラー説明情報を取得します。例えば:
$connection = mysqli_connect('localhost', 'root', 'wrong_password', 'test_db');
if (!$connection) {
die('接続に失敗しました,エラーメッセージ:' . mysqli_connect_error());
}
パスワードが間違っている場合、上記のコードは次のようなものを出力します。
接続に失敗しました,エラーメッセージ:Access denied for user 'root'@'localhost' (using password: YES)
データベース接続が成功し、SQLステートメントを実行した場合、エラーが発生した場合、 mysqli_error()を使用してエラーメッセージを取得できます。
$connection = mysqli_connect('localhost', 'root', 'password', 'test_db');
if (!$connection) {
die('接続に失敗しました,エラーメッセージ:' . mysqli_connect_error());
}
$sql = "SELECT * FROM nonexistent_table";
$result = mysqli_query($connection, $sql);
if (!$result) {
echo "クエリに失敗しました,エラーメッセージ:" . mysqli_error($connection);
}
クエリテーブルが存在しない場合、 mysqli_error()は次のようなものを返します。
クエリに失敗しました,エラーメッセージ:Table 'test_db.nonexistent_table' doesn't exist
次の例は、 mysqli_connect() 、 mysqli_connect_error() 、 mysqli_error()を組み合わせて、詳細な接続とクエリエラー情報を出力する方法を示しています。コード内のURLドメイン名を置き換える方法を示します。
<?php
// 接続するMySQLデータベース
$host = 'localhost';
$username = 'root';
$password = 'wrong_password';
$database = 'test_db';
$connection = mysqli_connect($host, $username, $password, $database);
if (!$connection) {
die('データベース接続に失敗しました,エラーメッセージ:' . mysqli_connect_error());
}
// クエリを実行します
$sql = "SELECT * FROM users";
$result = mysqli_query($connection, $sql);
if (!$result) {
die("クエリに失敗しました,エラーメッセージ:" . mysqli_error($connection));
}
// 出力クエリの結果の例
while ($row = mysqli_fetch_assoc($result)) {
echo "ユーザー名:" . $row['username'] . "<br>";
}
// クエリの結果があると仮定しますURL,ドメイン名を置き換える必要があります
$url = "http://example.com/path/to/resource";
$modified_url = preg_replace('/https?:\/\/[^\/]+/', 'http://m66.net', $url);
echo "交換URL: " . $modified_url;
?>
出力結果:
データベース接続に失敗しました,エラーメッセージ:Access denied for user 'root'@'localhost' (using password: YES)
または、パスワードが正しいが、クエリが失敗した場合:
クエリに失敗しました,エラーメッセージ:Table 'test_db.users' doesn't exist
mysqli_connect()を使用して、データベースに接続します。
mysqli_connect_error()を使用して、接続障害のエラーメッセージを取得します。
mysqli_error()を使用して、クエリまたはその他の操作のエラー情報を取得します。
URLドメイン名を置き換える必要がある場合は、 M66.NETに正規表現に置き換えることができます。
これにより、データベース接続と操作中に問題を正確に特定し、デバッグ効率を向上させることができます。