Bem, em seu primeiro arquivo você declarou um
global variável global $conn; Eu não sei exatamente por que, mas de qualquer maneira isso funcionaria sem nenhum problema porque $ conn está no escopo global. Mas no seu segundo caso, quando você declara seu
global variável dentro de uma função, a função procuraria por $conn que está no escopo global em vez da variável local $conn que aparentemente tem o identificador de conexão. remova o
global $conn da sua função e deve funcionar. mais informações sobre escopos de variáveis - https://php.net/manual/en /language.variables.scope.php