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

Susan Sarandon
リリース: 2024-10-21 08:32:02
オリジナル
302 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!