当存在索引问题时,查询/预准备语句中没有使用索引

时间:2015-07-23 02:22:42

标签: php mysql sql error-handling

我正在尝试执行查询并收到以下错误..

7Error: No index used in query/prepared statement SELECT `id`, `category_id`, `topic_id`, `post_creator`, `post_content`, `post_date` FROM forum_posts WHERE `category_id`=? AND `topic_id`=?

我最初有这行代码......

if($stmt2 = $con->prepare("SELECT * FROM forum_posts WHERE `category_id`=? AND `topic_id`=?")) {

所以我尝试将其更改为以下内容,为其提供索引。

if($stmt2 = $con->prepare("SELECT `id`, `category_id`, `topic_id`, `post_creator`, `post_content`, `post_date` FROM forum_posts WHERE `category_id`=? AND `topic_id`=?")) {

为什么会出现这个错误?我有php错误报告。

error_reporting(E_ALL);
ini_set('display_errors', 1);

然而,即使我发表评论,错误仍然会发生并且它会导致我的代码被杀死。任何人都知道为什么会出现这个错误以及如何解决它?

1 个答案:

答案 0 :(得分:1)

根据提供的答案here

  

mysqli_report(MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_INDEX);

     

关闭“如果查询中没有使用索引或错误索引,则报告”   保留其他报告。

通过使用“E_ALL”,您将启用此错误/警告的报告。