現在の位置: ホーム> 最新記事一覧> mysqli :: $ errnoを介してmysqli_stmt_execute()エラーの原因をすばやく見つける方法?

mysqli :: $ errnoを介してmysqli_stmt_execute()エラーの原因をすばやく見つける方法?

M66 2025-06-23

データベース操作にPHPのMySQLI拡張機能を使用する場合、データベースクエリを実行するときにエラーが発生することは避けられません。特に、 mysqli_stmt_execute()を使用してプリプロセシングステートメントを実行する場合、エラーメッセージがエラーの特定の原因を直接説明しない場合があります。この時点で、 MySQLI :: $ errno属性を使用して、エラーを見つけるのに役立ちます。

1. mysqli :: $ errnoとは何ですか?

mysqli :: $ errnoは、PHPのMySQLI拡張機能のプロパティであり、最後のMySQL操作で発生したエラーコードを示しています。 mysqli_stmt_execute()を実行するときにエラーが発生した場合、 mysqli :: $ errnoを介して詳細なエラーコードを取得できるため、開発者が問題を迅速に見つけることができます。

mysqli :: $ errnoおよびmysqli :: $エラーは、 mysqlデータベース操作の例外をよりよく理解するのに役立ちます。

2。mysqli_stmt_execute ()エラーの一般的な理由

エラーの一般的な原因には以下が含まれます。

  • SQLステートメントの構文エラー。

  • 不一致のデータ型のバインディングなど、パラメーターバインディングエラー。

  • データベース接続の問題。

  • データベースアクセス許可などが不十分です。

これらのエラーは、返されたブール値またはmysqli :: $ errorによってプロンプトされることがありますが、問題を特定するために、mysqli :: $ errnoを組み合わせてエラーのエラーコードを取得できます。

3. mysqli :: $ errnoを使用してエラーを見つける方法は?

mysqli_stmt_execute()によって返されたブール値を使用して、実行が成功するかどうかを判断できます。 falseが返された場合、実行が失敗したことを意味します。現時点では、 mysqli :: $ errnoおよびmysqli :: $ errorを介して詳細なエラー情報を取得できます。

サンプルコード:

 <?php
// データベース接続を作成します
$mysqli = new mysqli("localhost", "username", "password", "database");

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

// 準備する SQL 声明
$stmt = $mysqli->prepare("INSERT INTO users (username, email) VALUES (?, ?)");

// バインドパラメーター
$username = 'testuser';
$email = 'testuser@m66.net';
$stmt->bind_param("ss", $username, $email);

// 执行声明
if (!$stmt->execute()) {
    echo "エラーコード: " . $stmt->errno . "<br>";
    echo "エラーメッセージ: " . $stmt->error . "<br>";
} else {
    echo "正常に挿入します!<br>";
}

// 关闭声明和连接
$stmt->close();
$mysqli->close();
?>

コード分​​析:

  1. データベース接続:最初に、新しいmysqli()を介してデータベース接続を作成し、接続が成功したかどうかを確認します。

  2. SQLステートメントの準備prepare()メソッドを使用して、SQL INSERTステートメントを準備してユーザーデータを挿入します。

  3. バインドパラメーター:挿入されたパラメーターをbind_param()メソッドを介してバインドして、正しいデータ型を確保します。

  4. ステートメントを実行してエラーを確認しますmysqli_stmt_execute()メソッドを実行するときにfalseが返された場合、実行エラーが発生したことを意味します。 $ stmt-> errnoを使用してエラーコードを取得し、 $ stmt->エラーを使用してエラー説明を取得できます。

    上記のコードでは、実行にエラーがある場合、エラーコードとエラーメッセージを出力して、問題をすばやく見つけるのに役立ちます。

  5. 接続を閉じます:最後に、プレアセシングステートメントとデータベース接続を閉じます。

4.エラーコードの一般的な説明

mysqli :: $ errnoによって取得されたエラーコードは、MySQLデータベースによって返される標準エラーコードです。一般的なエラーコードは次のとおりです。

  • 1045ユーザーのために拒否されたアクセス- データベースアクセスが不十分です。

  • 1064SQL構文-SQL構文エラーにエラーがあります

  • 1062重複するエントリ- 重複データを挿入し、一意の制約に違反します。

  • 2002ローカルMySQLサーバーに接続できません- MySQL Serverに接続できません。

これらのエラーコードは、データベース操作の障害の理由を明確にするのに役立ちます。

5。概要

MySqli :: $ errnoプロパティを使用すると、データベース操作でエラーコードをすばやく取得し、 mysqli :: $エラーのエラー情報と組み合わせることで、問題の根本原因をより簡単に見つけることができます。 mysqli_stmt_execute()でエラーが発生したら、最初に戻り値を確認し、エラーコードを介して問題をさらにトラブルシューティングし、開発効率を改善し、デバッグ時間を短縮します。