致命錯誤: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