致命的エラー: MySQL クエリでインデックスが見つからないという警告
このエラーは、プリペアド ステートメントを使用するが指定されていないクエリを実行すると発生します。クエリ対象のテーブルのインデックス。 MySQL サーバーは、インデックスが使用されていないことを示す警告を発行し、潜在的なパフォーマンスの問題が発生します。
提供された PHP コードでは次のようになります。
$get_emp_list = $mysql->prepare("SELECT id, name FROM calc");
準備されたステートメントでは、計算テーブルのインデックスが指定されていません。これを修正するには、次の SQL ステートメントを使用してテーブルにインデックスを追加します。
ALTER TABLE calc ADD INDEX (id);
あるいは、インデックスを明示的に指定することもできます。 USING 句を使用した準備済みステートメント内:
$get_emp_list = $mysql->prepare("SELECT id, name FROM calc USING INDEX (id)");
インデックスが追加されると、クエリは実行を高速化するためにインデックスを使用し、警告メッセージを回避します。
インデックスの欠落に関する警告は MySQL では軽微な問題ですが、それに伴う PHP エラーは重大な問題であることに注意することが重要です。致命的なもの。これは、提供されたコードでは、mysqli_report 設定が MYSQLI_REPORT_ALL に設定されており、すべてのエラーと警告が致命的な例外として報告されるためです。これを防ぐには、設定を MYSQLI_REPORT_ERROR または MYSQLI_REPORT_STRICT に変更して、実際のエラーのみを致命的として報告します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3