ホームページ  >  記事  >  バックエンド開発  >  MySQL プリペアド ステートメントでのインデックス欠落の警告を解決するにはどうすればよいですか?

MySQL プリペアド ステートメントでのインデックス欠落の警告を解決するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-21 08:32:02304ブラウズ

How to Resolve Missing Index Warning in MySQL Prepared Statements?

致命的エラー: MySQL クエリでインデックスが見つからないという警告

このエラーは、プリペアド ステートメントを使用するが指定されていないクエリを実行すると発生します。クエリ対象のテーブルのインデックス。 MySQL サーバーは、インデックスが使用されていないことを示す警告を発行し、潜在的なパフォーマンスの問題が発生します。

提供された PHP コード内:

<code class="php">$get_emp_list = $mysql->prepare("SELECT id, name FROM calc");</code>

準備されたステートメントは、次のインデックスを指定していません。計算テーブル。これを修正するには、次の SQL ステートメントを使用してテーブルにインデックスを追加します:

<code class="sql">ALTER TABLE calc ADD INDEX (id);</code>

または、USING 句を使用してプリペアド ステートメントでインデックスを明示的に指定できます:

<code class="php">$get_emp_list = $mysql->prepare("SELECT id, name FROM calc USING INDEX (id)");</code>

インデックスが追加されると、クエリは実行を高速化するためにインデックスを使用し、警告メッセージが表示されなくなります。

インデックスの欠落に関する警告は MySQL では小さな問題ですが、PHP エラーでは発生することに注意することが重要です。それに伴うものは致命的です。これは、提供されたコードでは、mysqli_report 設定が MYSQLI_REPORT_ALL に設定されており、すべてのエラーと警告が致命的な例外として報告されるためです。これを防ぐには、設定を MYSQLI_REPORT_ERROR または MYSQLI_REPORT_STRICT に変更して、実際のエラーのみを致命的として報告します。

以上がMySQL プリペアド ステートメントでのインデックス欠落の警告を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。