我有 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;”后得到的结果->
我试过用
SELECT DISTINCT category
FROM books FORCE INDEX (idx_category)
ORDER BY category ASC;
还是不行
我不想将报告模式更改为 MYSQLI_REPORT_STRICT 或其他模式
阅读 mysql 文档