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 - https://php.net/manual/en /language.variables.scope.php