Fatal Error: Missing Index Warning in MySQL Query
This error occurs when you execute a query that uses a prepared statement but does not specify an index for the table being queried. The MySQL server will issue a warning indicating that no index was used, resulting in potential performance issues.
In the PHP code provided:
$get_emp_list = $mysql->prepare("SELECT id, name FROM calc");
The prepared statement does not specify an index for the calc table. To fix this, you can add an index to the table using the following SQL statement:
ALTER TABLE calc ADD INDEX (id);
Alternatively, you can specify the index explicitly in the prepared statement using the USING clause:
$get_emp_list = $mysql->prepare("SELECT id, name FROM calc USING INDEX (id)");
Once the index is added, the query will use the index for faster execution and avoid the warning message.
It's important to note that while the missing index warning is a minor issue in MySQL, the PHP error that accompanies it is a fatal one. This is because in the provided code, the mysqli_report setting is set to MYSQLI_REPORT_ALL, which reports all errors and warnings as fatal exceptions. To prevent this, you can change the setting to MYSQLI_REPORT_ERROR or MYSQLI_REPORT_STRICT, which only report actual errors as fatal.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3