Я столкнулся со странной проблемой при работе с MySQL с PHP и объектом mysqli. У меня есть пользователь, которого я использую для подключения к MySQL, и у этого пользователя достаточно прав для работы с конкретной базой данных. Все работает отлично.
Но я пытаюсь получить список всех баз данных. У пользователя нет прав для этого. Очевидно, я не вижу результатов моего запроса. Но странная вещь заключается в том, что у меня также нет ничего в $ mysqli-> errno, $ mysqli-> error (нет отказа в разрешении или какой-либо ошибке!), И мой результат $ не равен FALSE. Таким образом, в этой ситуации все выглядит так, как будто запрос выполнен нормально, и на сервере нет баз данных (конечно, это не так).
Вопрос не в том, как дать пользователю права на выполнение SHOW DATABASES. Вопрос в том, почему я не вижу никаких ошибок, в то время как у пользователя нет прав на выполнение определенного запроса? И далее, как правильно справиться с такой ситуацией?
Я использую этот код, и он не обрабатывает ситуацию, поскольку $ result не FALSE — это просто обычный $ result, но с пустыми строками
$result = $mysqli->query("SHOW DATABASES");
if($result === FALSE){
echo 'We've got MySQL error! '.$mysqli->errno.':'.$mysqli->error);
}
Цените любые предложения!
Бинго! Спасибо егьял!
Мой пользователь видит только те базы данных, к которым у него есть доступ. Я думал, что он получит ошибку, если у него нет прав на просмотр базы данных на сервере. Теперь все понятно!
Других решений пока нет …