Tja, i din första fil har du deklarerat en global
variabel global $conn;
Jag vet inte riktigt varför men det skulle i alla fall fungera utan problem eftersom $conn är i global räckvidd.
Men i ditt andra fall när du deklarerar din global
variabel inuti en funktion, skulle funktionen söka efter $conn
som är i globalt omfång istället för den lokala variabeln $conn
som tydligen har anslutningshandtaget.
ta bort den global $conn
från din funktion och det borde fungera.
mer information om variabla scopes - http://php.net/manual/en /language.variables.scope.php