Игорь, используйте ZipArchive.
При нажатии кнопки отправляйте запрос, запускаете функцию, метод, как у Вас там будет оформлено и распаковываете архив в нужную директорию. По завершении возвращаете ответ с необходимыми данными.
DevMan, я тоже хотел это написать, думал, что просто надо выделить цветом, но тут ориентироваться на параметры и как их получать, если они из php, то почему бы и нет?.
Добрый день.
Ну почему бы и не проверять. Есть запись в таблицу users есть - продолжаем код.
Думаю, что Вам надо использовать транзакции, тем самым Вы можете избежать выполнение delete если запись в users_social не удалась. https://habr.com/ru/post/446662/
p.s. В ответах не рекомендуют полагаться на значение id, поэтому поправлю себя, проверку надо делать, но на успешность выполнения запроса, выполнился он или нет. Транзакции облегчат задачу.
Разве может быть решением уровень ошибок, если он класс не видит просто?
kkolorid, это не решение, это рекомендация.
На момент разработки, на локальном, уровень ошибок должен быть выставлен на полную. Это нужно для того, чтобы Вы видели каждую мелочь, которая нарушает работу скрипта. Когда Вы всё исправите, вот тогда можно уровень ошибок снизить и отключить вывод в браузер. Писать из в лог.
При нажатии кнопки отправляйте запрос, запускаете функцию, метод, как у Вас там будет оформлено и распаковываете архив в нужную директорию. По завершении возвращаете ответ с необходимыми данными.