現在の位置: ホーム> 最新記事一覧> MySQLI :: $ INFO FUNCTIONを使用して、SQL実行ステータスのリアルタイム監視を実現する方法は?

MySQLI :: $ INFO FUNCTIONを使用して、SQL実行ステータスのリアルタイム監視を実現する方法は?

gitbox 2025-09-30

SQLクエリの実行ステータスの監視は、PHPアプリケーションを開発する際にパフォーマンスをデバッグおよび最適化するために重要です。 MySQLI拡張機能は、mySQLデータベースと対話するための複数の方法を提供します。ここでは、MySQLI :: $ INFO機能は、最後に実行されたSQLクエリに関する詳細情報を取得するための強力なツールです。この記事では、MySQLI :: $ INFO FUNCTIONを使用してSQL実行ステータスをリアルタイムで監視する方法を紹介します。

1. mysqli :: $ info機能とは何ですか?

MySQLI :: $ INFOは、特にクエリが実行された後、データベースとの対話に関する詳細情報を提供するPHP MySQLIクラスのプロパティです。このプロパティを通じて、開発者は、影響を受ける行の数、警告情報などを含むSQLステートメント実行のステータスを取得できます。

このプロパティは、主に次のシナリオで使用されています。

  • SQLクエリ実行後に統計情報を取得します

  • SQL実行中に警告があるかどうかを確認してください

  • 影響を受ける行の数を取得します(たとえば、更新または削除操作の後)

2。mysqli :: $ info機能を使用する方法は?

mysqli :: $ infoは、最後のSQLステートメントの実行に関連するメッセージを返す読み取り専用プロパティです。基本的な使用法は次のとおりです。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// データベース接続を作成します</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</span></span><span>);

</span><span><span class="hljs-comment">// 接続が成功しているかどうかを確認してください</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"接続に失敗しました: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-comment">// 埋め込むSQLクエリ</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"UPDATE users SET status = 'active' WHERE last_login &gt; '2025-01-01'"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>) === </span><span><span class="hljs-literal">TRUE</span></span><span>) {
    </span><span><span class="hljs-comment">// 出力SQL埋め込む状态</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"SQL埋め込む成功: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;info;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"SQL埋め込む失败: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;error;
}

</span><span><span class="hljs-comment">// 接続を閉じます</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

上記の例では、更新ステートメントを実行した後、 $ mysqli-> infoを使用してSQL実行の詳細を取得できます。 SQLが正常に実行された場合、影響を受ける行の数に関する情報を返します。 SQL実行が失敗した場合、エラーメッセージが出力されます。

3。mysqliの共通返品値:: $ info機能

mysqliの返品値:: $ infoには通常、以下が含まれます。

  • 影響を受ける行の数:たとえば、挿入更新削除などの操作の場合、 mysqli :: $ infoは、影響を受ける行の数を返します。

  • 警告の数:SQLの実行中に警告が発生した場合、返されたコンテンツに警告の数が表示される場合があります。

  • その他のクエリ情報:特定のクエリの場合、 mysqli :: $ infoも他の実行情報を返すことができます。

例えば​​:

 <span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"UPDATE users SET status = 'active' WHERE last_login &gt; '2025-01-01'"</span></span><span>;
</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;info; </span><span><span class="hljs-comment">// 戻る:Records updated: 50</span></span><span>
</span></span>

この例では、 mysqli :: $ infoは、 50のレコードが更新されたことを示すメッセージを返します。

4.リアルタイム監視のためにMySqli :: $情報を使用します

SQL実行ステータスのリアルタイム監視を実現するために、 mysqli :: $ infoを介してクエリ情報を継続的に取得し、各SQL操作が実行された後に確認できます。この方法は、開発段階でのデバッグまたはパフォーマンス分析に特に適しています。

たとえば、バッチで複数のSQLクエリを実行する場合、各クエリの後にmysqli :: $情報の返品値を記録することにより、各操作の効果を監視できます。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$queries</span></span><span> = [
    </span><span><span class="hljs-string">"INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]')"</span></span><span>,
    </span><span><span class="hljs-string">"UPDATE users SET status = 'inactive' WHERE last_login &lt; '2024-01-01'"</span></span><span>,
    </span><span><span class="hljs-string">"DELETE FROM users WHERE id = 101"</span></span><span>
];

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$queries</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$query</span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>)) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"クエリ埋め込む成功: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;info . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"クエリ埋め込む失败: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;error . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    }
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

この例では、クエリを実行するたびに、 $ mysqli-> infoを使用して現在のSQLステートメントの実行ステータスをすぐに出力します。これは、バッチ操作または複雑なトランザクション処理に非常に役立ち、実行の結果をリアルタイムで監視するのに役立ちます。

5。注意すべきこと

  1. 最後のSQLステートメントにのみ適用できますMySQLI :: $ INFOは、実行された最後のSQLステートメントに関するフィードバックのみを提供できます。同じスクリプトで複数のクエリを実行する場合、最後のクエリの実行情報のみを返します。

  2. データベース接続の問題:データベース接続に問題がある場合、 MySQLI :: $ INFOが有効な情報を返しない場合があるため、使用するとデータベース接続が正常であることを確認する必要があります。

  3. エラーと警告mysqli :: $情報は、主に実行の概要を取得するために使用されます。詳細なエラー情報が必要な場合は、 mysqli :: $エラー属性を使用する必要があります。

6。概要

MySQLI :: $ INFOは、開発者がSQLクエリの実行ステータスをリアルタイムで監視するのに役立つ非常に実用的なプロパティです。このプロパティを使用することにより、SQL操作を実行した後に詳細な実行情報を取得することができ、開発者がコードをデバッグして最適化するのに役立ちます。特に複雑なデータベース操作とバッチクエリでは、 MySQLI :: $ INFOは、開発者が対応する調整を行うのに役立つ重要なフィードバック情報を提供できます。

頻繁なSQL操作を必要とするPHPアプリケーションを構築している場合、 MySQLI :: $ INFOと組み合わせたリアルタイム監視により、デバッグと最適化効率が大幅に向上します。