如何修复“mysqli_sql_exception:查询/准备语句中未使用索引 SELECT DISTINCT ...在 C:\xampp\htdocs\...unctions.php:536?

问题描述 投票:0回答:0

我有 functions.php 创建到 MySQL 数据库的连接,并执行查询 ->

function query($query, $fun, $value)
{   
    require "connect.php";
    mysqli_report(MYSQLI_REPORT_ALL);   

    try 
    {           
        $con = new mysqli($host, $db_user, $db_password, $db_name);         

        if($con->connect_errno) 
        {           
            throw new Exception(mysqli_connect_errno()); 
        }
        else 
        {               
            if(!is_array($value)) 
            {   
                
                if($result = $polaczenie->query(sprintf($query, mysqli_real_escape_string($con, $value))))      
                {                       

                    $num_of_rows = $result->num_rows;                       

                    if($num_of_rows>0)
                    {                   
                        $fun($result);                      
                    }
                    else 
                    {                                   
                        echo 'no results';
                    }                                                           
                }
                else 
                {
                    throw new Exception($con->error); 
                }

                $con->close(); 
            }           
            else 
            {
                // ...
            }           
        }
    }
    catch(Exception $e) 
    {               
        echo 'error ->'.$e;         
    }
}

在我的 index.php 中,我正在尝试执行查询 ->

query("SELECT DISTINCT category FROM books ORDER BY category ASC", "get_categories", "");

我收到那个错误 ->

mysqli_sql_exception:查询/准备语句中未使用索引 SELECT DISTINCT category FROM books ORDER BY category ASC in C:\xampp\htdocs... unctions.php:536;

我知道我可以将错误报告方法更改为 MYSQLI_REPORT_STRICT,但隐藏错误是很好的解决方案?

这是执行“SHOW INDEX FROM books;”后得到的结果->

books

我试过用

SELECT DISTINCT category
FROM books FORCE INDEX (idx_category) 
ORDER BY category ASC;

还是不行

我不想将报告模式更改为 MYSQLI_REPORT_STRICT 或其他模式

阅读 mysql 文档

php mysql database
© www.soinside.com 2019 - 2024. All rights reserved.