Eh bien, dans votre premier fichier, vous avez déclaré un global
variable global $conn;
Je ne sais pas exactement pourquoi, mais de toute façon cela fonctionnerait sans aucun problème car $conn est dans une portée globale.
Mais dans votre deuxième cas lorsque vous déclarez votre global
variable à l'intérieur d'une fonction, la fonction rechercherait $conn
qui est dans la portée globale au lieu de la variable locale $conn
qui a apparemment le handle de connexion.
supprimer le global $conn
de votre fonction et cela devrait fonctionner.
plus d'informations sur les portées variables - http://php.net/manual/en /variables.de.langue.scope.php