2010-09-21 2 views
0

Может кто-нибудь сказать мне, что я получаю ошибку: Фатальная ошибка: вызов функции члена FETCH_ASSOC() на не-объект для этого метода внутри классаПочему я получаю: вызов функции-члена fetch_assoc() для не-объекта для этой рекурсивной функции?

Это рекурсивная функция, и она прекрасно работает первый раз, второй раз, когда я получаю ошибку.

function getSite($var, $var1 = 0, $numLevel = 1){ 
    //get the page 
    $qry = "SELECT * FROM table WHERE columnA = $var AND columnB = $var1 ORDER BY parent, position ASC"; 

    $arrPage = $this->my_sqli->query($qry); 

    //a valid resut was returned from the DB 
    while($obj = $arrPage->fetch_assoc()){ 
    //add to array 
    if($obj['id']){ 
    $this->arrMenu = array(
    'id' => $obj['id'], 
    'parent' => $obj['parent'], 
    'level' => $numLevel 
    ); 

      ... some more code 

       // call the function again 
       getSite($value1); 
      } 
     } 
    } 
+0

'Эхо $ this-> my_sqli-> ошибка;' – Wrikken

+0

и var_dump ($ arrPage) Это не может быть никаких результатов, возвращающиеся на 2-й вызов. – Gazler

+1

Это '$ this-> getSite()'? Или вы не копируете его правильно. В противном случае он может попытаться вызвать обычную функцию вместо метода класса ... – ircmaxell

ответ

0

Вы не включая проверку ошибок.

Изменить

$arrPage = $this->my_sqli->query($qry); 

в

if (($arrPage = $this->my_sqli->query($qry)) === false) { 
     printf("Error: %s in query %s\n", $this->my_sqli->error,$qry); 
    } 
+0

Это приведет меня в правильном направлении. Благодарю. –

0

Обычно, когда я вижу эти ошибки есть что-то не так с запросом, попробуйте повторить запрос и выполнение его в чем-то вроде Query Browser

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