Неустранимая ошибка: вызов функции-члена fetch_assoc () при булевом в-ошибке [дубликат]

Вы используете объект, содержащий ссылку нулевого значения. Таким образом, он дает пустое исключение. В примере строковое значение равно null, и при проверке его длины произошло исключение.

Пример:

string value = null;
if (value.Length == 0) // <-- Causes exception
{
    Console.WriteLine(value); // <-- Never reached
}

Ошибка исключения:

Необработанное исключение:

System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта. в Program.Main ()

26
задан nickles 25 February 2011 в 19:18
поделиться

4 ответа

Это потому, что в вашем запросе была ошибка. MySQli->query() вернет false при ошибке. Измените его на что-то вроде ::

$result = $this->database->query($query);
if (!$result) {
    throw new Exception("Database Error [{$this->database->errno}] {$this->database->error}");
}

Это должно вызвать исключение, если есть ошибка ...

36
ответ дан ircmaxell 28 August 2018 в 19:15
поделиться

Скорее всего, ваш запрос не удался, а запрос вызвал логический FALSE (или какой-то объект ошибки), который затем попытался использовать, как если бы был объект resultet, что вызвало ошибку. Попробуйте что-то вроде var_dump($result), чтобы узнать, что вы действительно получили.

Проверьте ошибки после каждого запроса запроса к базе данных. Даже если сам запрос синтаксически действителен, в любом случае есть слишком много причин для его отказа - проверка ошибок каждый раз в какой-то момент сэкономит вам много горя.

10
ответ дан Marc B 28 August 2018 в 19:15
поделиться

Убедитесь, что вы уже закрыли соединение с базой данных или нет. В моем случае я получал ошибку, потому что соединение было близко в верхней строке.

0
ответ дан Mustafizur Rahman 28 August 2018 в 19:15
поделиться

Мне не хватает пробелов в моем запросе, и эта ошибка возникает.

Ex: $sql= "SELECT * FROM";
$sql .= "table1";

Хотя пример может выглядеть просто, при кодировании сложных запросов вероятность этой ошибки высока. Мне не хватало пробела перед словом «table1».

3
ответ дан Upendra Bittu 28 August 2018 в 19:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: