2010-09-21 4 views
0

Quelqu'un peut-il me dire que je reçois l'erreur: Erreur fatale: appel à une fonction de membre fetch_assoc() sur un non-objet pour cette méthode dans la classePourquoi est-ce que je reçois: Appel à une fonction membre fetch_assoc() sur un non-objet pour cette fonction récursive?

Ceci est une fonction récursive, et il fonctionne très bien la première fois, c'est la deuxième fois que je reçois l'erreur.

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

'echo $ this-> my_sqli-> erreur;' – Wrikken

+0

et var_dump (arrPage $) Il pourrait être aucun résultat retour sur le 2ème appel. – Gazler

+1

Est-ce '$ this-> getSite()'? Ou ne le copiez-vous pas correctement? Sinon, il peut essayer d'appeler une fonction régulière au lieu d'une méthode de classe ... – ircmaxell

Répondre

0

Vous n'êtes pas incluez la vérification des erreurs.

changement

$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

Cela m'a conduit dans la bonne direction. Merci. –

0

Normalement quand je vois ces erreurs, il y a quelque chose de mal avec la requête, essayez écho la requête et l'exécuter dans quelque chose comme Query Browser

Questions connexes