2010-09-21 92 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

'回声$这个 - > my_sqli->错误;' – Wrikken 2010-09-21 18:15:32

+0

和后续代码var_dump($ arrPage)这可能是没有结果返回的第二个呼叫。 – Gazler 2010-09-21 18:18:09

+1

它是'$ this-> getSite()'?或者你没有正确复制它。否则它可能会尝试调用常规函数而不是类方法... – ircmaxell 2010-09-21 18:19:45

回答

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

这使我找到了正确的方向。谢谢。 – 2010-09-21 19:23:42

0

通常情况下,当我看到这些错误有什么毛病查询,尝试呼应的查询和类似查询浏览器