За последние 24 часа нас посетили 23212 программистов и 1718 роботов. Сейчас ищут 1823 программиста ...

ошибка Call to a member function fetch_assoc()

Тема в разделе "PHP и базы данных", создана пользователем stanislav1708, 8 мар 2018.

  1. stanislav1708

    stanislav1708 Новичок

    С нами с:
    8 фев 2018
    Сообщения:
    12
    Симпатии:
    0
    вот ошибка Fatal error: Call to a member function fetch_assoc() on a non-object in Y:\home\localhost\www\functions\functions.php on line 27
    вот код
    PHP:
    1. <?php
    2.         $dbhost = "localhost";
    3.         $dbuser = "root";
    4.         $dbname = "gveimbase";
    5.         $dbpasswd = "";
    6.     $mysqli = false;
    7.     function connectDB () {
    8.         global $mysqli;
    9.     $mysqli = new mysqli ($dbhost, $dbuser, $dbpass, $dbname);
    10.     $mysqli->query("SET NAMES 'utf8'");
    11.  
    12. }
    13.  
    14.     function closeDB () {
    15.     global $mysqli;
    16.     $mysqli->close ();
    17. }
    18.     function getNews ($limit){
    19.         global $mysqli;
    20.         connectDB();
    21.         $result = $mysqli->query("SELECT * FROM `news` ORDER BY  `id` DESC LIMIT $limit");
    22.         closeDB();
    23.         return resultToArray ($result);
    24.     }
    25.     function resultToArray ($result) {
    26.        
    27.         $array = array ();
    28.         while (($row = $result->fetch_assoc()) != false)
    29.         $array[] = $row;
    30.         return $array;
    31.        
    32.     }
    33. ?>
    уже не знаю что делать,мучаюсь уже целый день,помогите пожалуйста.
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    PHP:
    1. if (!$result) {
    2.     throw new Exception("Database Error [{$this->database->errno}] {$this->database->error}");
    3. }
     
  3. stanislav1708

    stanislav1708 Новичок

    С нами с:
    8 фев 2018
    Сообщения:
    12
    Симпатии:
    0
    подскажите пожалуйста,куда это вставить или место чего?
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    У тебя в $result ничего нету.
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.331
    Адрес:
    Лень
    @stanislav1708 используй https://github.com/MouseZver/Lerma

    https://github.com/MouseZver/Lerma/blob/master/tests/test.php

    интересно будет, опишу в деталях.
    --- Добавлено ---
    PHP:
    1. function getNews ($limit)
    2. {
    3.     global $mysqli;
    4.  
    5.  
    6.     # Дерьмо, каждый раз вызывая функцию getNews, you повторно подключаешь соединение с бд
    7.    connectDB();
    8.  
    9.  
    10.  
    11.     $result = $mysqli->query("SELECT * FROM `news` ORDER BY  `id` DESC LIMIT $limit");
    12.  
    13.  
    14.     # закрытие вовсе нужно казнить и убрать
    15.    closeDB();
    16.  
    17.  
    18.     return resultToArray ($result);
    19. }
     
    #5 MouseZver, 9 мар 2018
    Последнее редактирование: 9 мар 2018
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    185
    @MouseZver у лермы уже 8 установок