1. НИКОГДА не публикуйте креды к базе!
2. Не используйте подстановку данных в запрос через конкатенацию. Вместо этого используйте плейсхолдеры.
Пример 1 (SQL инъекция):
# Тут заэнкожено: '; DROP TABLE `users`; --
curl -XPOST -H 'Content-type: application/x-www-form-urlencoded' -d'phone=%27%3B%20DROP%20TABLE%20%60users%60%3B%20--'
Пример 2 (phone может содержать массив):
curl -XPOST -H 'Content-type: application/x-www-form-urlencoded' -d'phone[]=+123'
3. Не используйте глобальные переменные. Про это есть множество статтей.
4. Если есть возможность - используйте \PDO, вместо mysqli.
5. Не стоит объявлять функции/классы/трейты/интерфейсы по условию. Вместо этого используйте их по условию, но объявляйте без него.
6. При работе с путями рекомендую пользоваться глобальными, вместо относительных, иначе этот самый путь будет зависеть от скрипта, с которого запустили ваш код, а не от того, где происходит работа с файлами.
7. У вас конкурентно не безопасный код за счет того, что работа с файлами происходит в одном и том же каталоге, с одними и теми же именами файлов. Что будет если запустить два запроса одновременно на вытяжку всех пользователей? В лучшем случае один из запросов просто упадет с ошибкой что не может добавить в архив файл (это второй поток его уже удалил). Если будет запущено 2 запроса например на 1го пользователя и на всех - есть вероятность, что один из них вернет далеко не запрашиваемые данные)).
8. Очень рекомендую разделить вашу обработку на 2 части:
- Первая пусть записывает в файлики данные по пользователям при обновлении данных этих пользователей.
- Вторая - вытягивает вытягивает только id требуемых для архивирования и уже добавляет их в архив. Имя архива стоит делать рэндомным, что бы избежать конкурентного доступа к одному и тому же файлу на запись.
9. getUserses -> getUsers
Конкретно по вашей проблеме: если я праивльно понимаю, вы в один и тот же архив запихиваете файлы на каждый запрос, грубо говоря один раз вытянув всех пользователей - дальше вы только обновляете их в архиве на 10к файлов, а не создаете новый архив.