2015-05-20 10 views
-3

Im получение этой ошибки, и я не знаю, как исправить.PHP mysqli Неустранимая ошибка: вызов функции функции-члена() по нуле

'Fatal error: Call to a member function query() on null in C:\xampp\htdocs\cms\lib\db.php on line 46'

Код:

class db { 

public $mysqli; 

function Connect() { 

     $server = 'localhost'; 
     $dbusername = 'root'; 
     $database = 'cms'; 
     $dbpassword = 'lopaka'; 
     $this->mysqli = new mysqli($server, $dbusername, $dbpassword, $database); 

     /* connectie bekijken */ 
     if (mysqli_connect_errno()) { 
      printf("Connectie mislukt: %s\n", mysqli_connect_error()); 
      exit(); 
     } 
    } 


function GetGallery() { 

    $query = "SELECT * FROM menu"; 
    $action = $this->mysqli->query($query); 

    while ($row = $action->fetch_assoc()) { 
     $gallery .= '<a href="'.$siteurl.''.$row['url'].'" title="'.$row['alt'].'" data-gallery="" ><img src="'.$siteurl.''.$row['url'].'" width="75px" height="75px"></a>';  
    } 

    return $gallery; 
} 

}

Спасибо !!!

Edit - теперь работает, но теперь у меня есть некоторые новые ошибки:

Примечание: Undefined индекс: URL в C: \ XAMPP \ HTDOCS \ Cms \ Lib \ db.php на линии 42

Примечание : Неопределенный индекс: alt in C: \ xampp \ htdocs \ cms \ lib \ db.php в строке 42

Примечание: Неопределенный индекс: URL-адрес в C: \ xampp \ htdocs \ cms \ lib \ db.php on line 42

+3

Пожалуйста, добавьте ваш прецедент, вы, возможно, не вызвали метод 'Connect()', прежде чем получить галерею! – someOne

+0

$ db = new db(); $ db-> Connect(); $ db-> GetGallery(); который работает сейчас, но теперь im получает новые ошибки. – Fumping

+0

Вставьте 'var_dump ($ row); die();' в качестве первых операторов в цикле 'while()' и отчитайтесь! – someOne

ответ

-1
 while ($row = mysqli_fetch_assoc($action)) { 
      $gallery .= '<a href="'.$siteurl.''.$row['url'].'" title="'.$row['alt'].'" data-gallery="" ><img src="'.$siteurl.''.$row['url'].'" width="75px" height="75px"></a>';  
     } 
return $gallery; 
+0

Это неверно, и кроме этого возникает ошибка * до * этого раздела. – jeroen

0

Вы должны добавить __construct() metho d к классу ... добавить, как это ...

public function __construct() 
{   
    $this->Connect(); 
} 

Здесь Connect() будет инициализирован, а затем метод только MySQLi запрос() будет работать.

Смежные вопросы