Function fetch_assoc () on a non-object

Відео: PHP Балак

Function fetch_assoc () on a non-object

Однією з найпопулярніших помилок, з якої мені і моїм учням доводиться стикатися, це "Function fetch_assoc () on a non-object". Регулярно мені надсилають питання з цією помилкою і запитують, що робити. Давайте з Вами розберемо основні причини виникнення даної помилки.

В оригіналі дана помилка означає, що ми намагаємося викликати метод fetch_assoc () у не об`єкта. Наприклад, вона виникне тут:

Відео: JMS089: PHP Fatal Error [FIX]: Call to a Member Function Fetch_Assoc On a Non-Object

lt ;?php
$ x
=false-
$ x
-gt;fetch_assoc() -
?gt;



У нас змінна "x"Є булевою, тому ніяких методів у неї немає, про що і повідомляє нам PHP. Але це базова помилка, яку навряд чи хтось допустить. Тому найчастіше "Function fetch_assoc () on a non-object"Є лише наслідком іншої помилки, на яку PHP не реагує:

Відео: CI problem: Fatal error Call to a member function userdata ()

lt ;?php
$ result_set
= $ mysqli-gt;query("SELECT * FROM WHERE` id` = `3` ") -
$ row
= $ result_set-gt;fetch_assoc() -
?gt;

У нас виникає все та ж помилка, але тепер вона не очевидна. Дана помилка нам повідомляє, що змінна "result_set"Не є об`єктом. Рухаємося далі, а чому вона не є об`єктом, де ми її визначили? Піднімаємо очі вище і бачимо, що в неї ми повинні помістити результат вибірки. І ось саме в цьому рядку і є помилка. Якби $ mysqli був не об`єктом, або ми б помилилися з написанням методу query (), нам би PHP про це відразу повідомив.




Отже, вся проблема в строкової змінної із запитом. Зрозуміло, на вміст рядка PHP ніяк не реагує, але в цьому запиті міститься помилка. Уважно до нього придивившись, можна помітити, що там не вистачає назви таблиці.

Виправивши запит, помилка "Function fetch_assoc () on a non-object"Зникне. Як бачите, в більшості випадків дана помилка виникає саме через неправильне запиту.

Відео: PHP Error: mysql_fetch_assoc () Expects Parameter 1 to be Resource, Boolean Given

Мета даної статті була не тільки розповісти про цю помилку, а й показати, що не треба зациклюватися на тому рядку, де, як показує PHP, міститься помилка.

Поділися в соціальних мережах:

Схожі
Відмінності між function declaration і function expression в jаvascript.Відмінності між function declaration і function expression в jаvascript.
Створення движка на mvc. Допрацьовуємо роутер.Створення движка на mvc. Допрацьовуємо роутер.
Відправлення запитів до бази даних в phpВідправлення запитів до бази даних в php
Що нового в php7.1: нові повідомлення про помилки.Що нового в php7.1: нові повідомлення про помилки.
Що нового в ecmascript 6?Що нового в ecmascript 6?
Об`єкт object в jаvascriptОб`єкт object в jаvascript
Створення об`єктів в jаvascriptСтворення об`єктів в jаvascript
Клас для роботи з базою данихКлас для роботи з базою даних
Основний інструмент при пошуку помилок в кодіОсновний інструмент при пошуку помилок в коді
Винятки в phpВинятки в php
» » Function fetch_assoc () on a non-object