Vâng, trong tệp đầu tiên của bạn, bạn đã khai báo một global biến global $conn; Tôi không biết chính xác tại sao nhưng dù sao điều đó sẽ hoạt động mà không có vấn đề gì vì $ conn nằm trong phạm vi toàn cầu.
Nhưng trong trường hợp thứ hai khi bạn khai báo global biến bên trong một hàm, hàm sẽ tìm kiếm $conn thuộc phạm vi toàn cục thay vì biến cục bộ $conn mà dường như có tay cầm kết nối.
loại bỏ global $conn từ chức năng của bạn và nó sẽ hoạt động.
thêm thông tin về phạm vi biến - https://php.net/manual/en /language.variables.scope.php