Pourquoi ne mysqli num_rows retourne toujours 0?

J'ai eu du mal à obtenir le nombre de lignes à retourner à l'aide de mysqli. Je viens d'obtenir 0 retour à chaque fois, même si il ya certainement des résultats.

if($stmt = $mysqli->prepare("SELECT id, title, visible, parent_id FROM content WHERE parent_id = ? ORDER BY page_order ASC;")){  
    $stmt->bind_param('s', $data->id);  
    $stmt->execute();
    $num_of_rows = $stmt->num_rows;  
    $stmt->bind_result($child_id, $child_title, $child_visible, $child_parent);  

    while($stmt->fetch()){
        //code
    }

    echo($num_of_rows);

    $stmt->close();
}

Pourquoi ne pas montrer le bon numéro?

Que fait un var_dump sur $stmt produire?
print_r() retourne: mysqli_stmt Object ( [affected_rows] => -1 [insert_id] => 0 [num_rows] => 0 [param_count] => 1 [field_count] => 4 [errno] => 0 [erreur] => [sqlstate] => 00000 [id] => 1 )
assurez-vous que les données existent...
La façon dont je le comprend (et s'il vous plaît corrigez-moi si je me trompe, c'est nouveau pour moi) est que, après $stmt->execute() est appelée, la requête est exécutée et donc, à tout moment après que je devrais être en mesure d'accéder le nombre de lignes qui ont été récupérés? J'ai essayé en faisant écho à $stmt->num_rows après $stmt->execute() et après $stmt->fetch(). La requête est certainement juste, parce que c'est le remplissage de la table de cellules (//code) correctement - il y a donc des données. Merci

OriginalL'auteur ollie | 2011-02-16