Nah, di file pertama Anda, Anda telah mendeklarasikan global
variabel global $conn;
Saya tidak tahu persis mengapa, tetapi bagaimanapun itu akan berhasil tanpa masalah apa pun karena $conn berada dalam lingkup global.
Tetapi dalam kasus kedua Anda ketika Anda mendeklarasikan global
Anda variabel di dalam suatu fungsi, fungsi akan mencari $conn
yang berada dalam lingkup global alih-alih variabel lokal $conn
yang tampaknya memiliki pegangan koneksi.
hapus global $conn
dari fungsi Anda dan itu akan berfungsi.
informasi lebih lanjut tentang cakupan variabel - http://php.net/manual/en /language.variables.scope.php