Gostaria de saber se num_rows() está relatando em relação ao conjunto de resultados atual. Tente capturar num_rows() antes de buscar os dados. por exemplo.
if($statement->prepare($query))
{
$statement->execute();
$statement->store_result();
echo $statement->num_rows();
$statement->bind_result($name);
$statement->fetch();
echo $name;
}
Isso tem algum efeito?