現在の位置: ホーム> 最新記事一覧> connect()とmysqli_error()を使用して、詳細なエラー情報を取得します

connect()とmysqli_error()を使用して、詳細なエラー情報を取得します

M66 2025-06-02

PHPでは、mysqlデータベースに接続する場合、一般的に使用される関数はmysqli_connect()です。ただし、実際の開発プロセスでは、ユーザー名とパスワードエラー、到達不可能なデータベースサーバーなど、データベースへの接続に失敗しない理由があります。問題をデバッグおよびトラブルシューティングするには、詳細なエラー情報を取得する必要があります。

この記事では、mysqli_connect()関数を使用してデータベース接続を実行する方法を紹介し、 mysqli_connect_error()mysqli_error()を組み合わせて、接続および操作中に詳細なエラー情報を取得します。同時に、URLがコードに表示される場合、ドメイン名はM66.netに置き換えられます。


1。mysqli_connect()関数を使用して、データベースに接続します

mysqli_connect()は、 mysql拡張機能で使用される関数です。MySQLサーバーに接続します。構文は次のとおりです。

 $connection = mysqli_connect($host, $username, $password, $database);
  • $ host :データベースサーバーアドレス(localhostやipなど)

  • $ username :データベースユーザー名

  • $パスワード:データベースパスワード

  • $データベース:接続するデータベースの名前

接続が成功し、接続オブジェクトが失敗した場合にfalseを返します。

2。接続エラーメッセージをキャプチャします

接続が失敗したら、 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)

3. mysqli_error()を使用して、操作エラーをキャッチします

データベース接続が成功し、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

4。サンプルコードと組み合わせた

次の例は、 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

5。概要

  • mysqli_connect()を使用して、データベースに接続します。

  • mysqli_connect_error()を使用して、接続障害のエラーメッセージを取得します。

  • mysqli_error()を使用して、クエリまたはその他の操作のエラー情報を取得します。

  • URLドメイン名を置き換える必要がある場合は、 M66.NETに正規表現に置き換えることができます。

これにより、データベース接続と操作中に問題を正確に特定し、デバッグ効率を向上させることができます。