現在の位置: ホーム> 最新記事一覧> mysqli_stmt :: $エラーを使用してデータベースエラーアサーションを書き込みます

mysqli_stmt :: $エラーを使用してデータベースエラーアサーションを書き込みます

gitbox 2025-05-28

データベース操作は、特にMySQLデータベースと対話する場合、PHPアプリケーションの開発の避けられない部分です。データを挿入、更新、削除、または照会するかどうかにかかわらず、任意のステップでエラーがある場合は、アプリケーションの障害またはデータの矛盾を引き起こす可能性があります。データベース操作のスムーズな実行を確保するために、効果的なエラー処理メカニズムが必要です。

mysqli_stmt :: $エラーは、PHP mysqli拡張機能によって提供される非常に有用なプロパティであり、最後のデータベース操作で発生したエラー情報を取得できます。この記事では、 MySQLI_STMT :: $エラーを使用してデータベースエラーアサーションを書き、データベース操作のエラーを効果的に処理する方法について説明します。

1.データベースに接続します

データベース操作の作成を開始する前に、まずMySQLIを介してMySQLデータベースに接続する必要があります。 mysqli_connect()またはオブジェクト指向の方法を介して接続できます。

 <?php
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'test_db';

// オブジェクト指向のアプローチを使用して接続を作成します
$mysqli = new mysqli($host, $user, $password, $database);

// 接続が成功しているかどうかを確認してください
if ($mysqli->connect_error) {
    die("接続に失敗しました: " . $mysqli->connect_error);
}
?>

2。mysqli_stmtを使用して、SQLクエリを実行します

データベースに正常に接続したら、次のステップはSQLクエリを準備することです。効果的なエラー処理を行うには、準備されたステートメントを使用することをお勧めします。前処理ステートメントは、SQL注入を防ぐだけでなく、クエリ効率を改善します。

MySQLI_STMTを使用してSQLクエリを実行し、考えられるエラーを処理する方法を次に示します。

 <?php
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";

// 前処理ステートメントを使用します
$stmt = $mysqli->prepare($sql);

if ($stmt === false) {
    die("プリプロセシングステートメントエラー: " . $mysqli->error);
}

// バインドパラメーター
$username = 'john_doe';
$email = '[email protected]';
$stmt->bind_param('ss', $username, $email);

// 実行ステートメント
$stmt->execute();

// 実行結果を確認してください
if ($stmt->error) {
    die("実行エラー: " . $stmt->error);
} else {
    echo "データ挿入に正常に!";
}
?>

3.エラーアサーションと例外処理

開発中、エラーアサーションは非常に重要であり、問​​題をすぐに見つけて解決するのに役立ちます。 mysqli_stmt :: $エラーを組み合わせて、エラーアサーションを作成できます。データベースの操作が失敗したら、すぐにプログラムを停止し、特定のエラー情報を出力します。

 <?php
function assertQuerySuccess($stmt) {
    if ($stmt->error) {
        throw new Exception("データベース操作に失敗しました: " . $stmt->error);
    }
}

try {
    $sql = "INSERT INTO users (username, email) VALUES (?, ?)";
    $stmt = $mysqli->prepare($sql);
    assertQuerySuccess($stmt); // エラーがある場合,例外を投げます

    $username = 'jane_doe';
    $email = '[email protected]';
    $stmt->bind_param('ss', $username, $email);
    $stmt->execute();

    assertQuerySuccess($stmt); // 再次実行結果を確認してください
    echo "データ挿入に正常に!";
} catch (Exception $e) {
    echo "間違い: " . $e->getMessage();
}
?>

上記のコードでは、 ASSERTQUERYSUCCESS()関数がデータベース操作が成功しているかどうかを確認します。操作が失敗した場合、例外をスローします。これは、必要に応じてキャッチして処理できます。

4.さまざまなエラータイプを処理します

時には、データベース操作が失敗する理由がたくさんあるかもしれません。たとえば、SQL構文エラー、データベース接続の問題、またはサーバーの障害である可能性があります。 mysqli_stmt :: $ $エラープロパティでエラーメッセージを確認することにより、異なるエラータイプに基づいて対応する測定値を取ることができます。

 <?php
if ($stmt->error) {
    // 处理特定的間違い
    switch ($stmt->errno) {
        case 1062:
            echo "間違い:複製エントリ!";
            break;
        case 1049:
            echo "間違い:不明なデータベース!";
            break;
        default:
            echo "数据库間違い: " . $stmt->error;
    }
}
?>

5。概要

MySQLI_STMT :: $ $ ERROR Databaseエラー処理は、問題を発見し、データベースの操作が失敗したときにアプリケーションが迅速に応答し、適切な測定値をとることができるように効果的に役立ちます。良好なエラーアサーションと例外処理メカニズムにより、プログラムの堅牢性と保守性が大幅に改善されました。

この記事では、 MySQLI_STMT :: $エラーのエラーを使用する方法、データベース操作の一般的なエラーを処理する方法、および例外処理を通じてコードの堅牢性をさらに強化する方法について説明します。この記事が、PHPプロジェクトのデータベース関連エラーをよりよく処理するのに役立つことを願っています。