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