如何处理 php mysqli 中权限不足的问题?

How to handle not enough permissions in php mysqli?

我在使用 MySQL 和 PHP 以及 mysqli 对象时遇到了一个奇怪的问题。我有用户,我用它来连接到 MySQL 并且该用户有足够的权限来处理特定的数据库。一切正常。

但我正在尝试获取所有数据库的列表。用户没有权限。显然我看不到查询的任何结果。但奇怪的是,我在 $mysqli->errno、$mysqli->error 中也没有任何内容(没有权限被拒绝或任何类型的错误!)并且我的 $result 不是 FALSE。所以在这种情况下,一切看起来都好像查询执行得很好并且服务器上没有数据库(当然这不是真的)。​​

问题不在于如何授予用户执行 SHOW DATABASES 的权限。问题在于:为什么我没有看到任何错误,而用户却没有执行特定查询的权限?更进一步,如何妥善处理这种情况?

我使用此代码但它无法处理这种情况,因为 $result 不是 FALSE - 它只是普通的 $result,但有空行

$result = $mysqli->query("SHOW DATABASES");
if($result === FALSE){
    echo 'We've got MySQL error! '.$mysqli->errno.':'.$mysqli->error);
}

感谢任何建议!

宾果!谢谢 eggyal!

我的用户只能看到他有权访问的数据库。我想,如果他没有在服务器上列出数据库的权限,他会出错。现在一切都清楚了!