致命的エラー: 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 サイトの他の関連記事を参照してください。