Чудя се дали num_rows() се отчита спрямо текущия набор от резултати. Опитайте да заснемете num_rows() преди да извлечете данните. напр.
if($statement->prepare($query))
{
$statement->execute();
$statement->store_result();
echo $statement->num_rows();
$statement->bind_result($name);
$statement->fetch();
echo $name;
}
Това има ли ефект?