Function fetch_assoc () on a non-object
Відео: PHP Балак
Однією з найпопулярніших помилок, з якої мені і моїм учням доводиться стикатися, це "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, міститься помилка.
Як зробити підписку на сайті (v2)
Що нового в php7.1: нові повідомлення про помилки.
Що нового в php7.1: робота з групою винятків.
Що нового в ecmascript 6?
Як зробити коментування на сайті
Nodejs. Як працюють function expression.
Вивчаємо coffeescript. Оператори.
Багаторівневе меню на php і mysql
Об`єкт object в jаvascript
Обробка помилок в php
Статичні властивості і методи в php
Клас для роботи з базою даних
Шаблон проектування "одинак" (pattern singleton).
Основний інструмент при пошуку помилок в коді
Створення движка на mvc. Продовжуємо роботу над чатом.
Відмінності між function declaration і function expression в jаvascript.
Об`єкти, прототипи і конструктори в мові jаvascript.
Автоматичне резервне копіювання на php
Винятки в php
Відправлення запитів до бази даних в php
Створення об`єктів в jаvascript
Відмінності між function declaration і function expression в jаvascript.
Створення движка на mvc. Допрацьовуємо роутер.
Відправлення запитів до бази даних в php
Що нового в php7.1: нові повідомлення про помилки.
Що нового в ecmascript 6?
Клас для роботи з базою даних
Основний інструмент при пошуку помилок в коді
Винятки в php