выбираете данные в селекте руками, откоываете Консоль/Сеть в браузере, жмете Отправить, изучаете запрос, который отправлен на сервер и ответ сервера.
дальше пишете скрипт, который отправляет curl-ом серию таких же POST(?) запросов с разными данными (поочередно подкидывая данные из опшенов) и разбирает ответы.
ну т.е. суть в том, что не надо имитировать выбор из селекта и клики по кнопкам. достаточно имитировать http-запросы, которыми фронт общается с бэком.
ну если совсем по феншую - перекроите структуру таблиц, чтобы одна запись = одна страница, чтобы при выводе каждый раз не читать весь том Войны и Мира только ради вывода 156й страницы. Таблица книг, таблица страниц, пагинация стандартная через «limit», все просто, и серверу в разы легче. гемор и нагрузка будут только при сохранении, но не при чтении.
именно в методе добавления - никак. можно создать новый класс DatabaseEx extends Database, в нем переопределить метод соединения, а в методе добавления вместо использования $this->db создавать и использовать инстанс класса DatabaseEx
1. ну как вариант - filter_var_array; имена лучше прогонять по белому списку, выше про это уже писали, но это уже от проекта зависит;
2. в приступах паранойи, я иногда заворачиваю все в base64 перед сохранением куда-либо; структурированные данные - json_encode + base64_encode. избыточно ли это? наверное, да ))
3. эмм.. а что бы вы хотели, чтобы происходило? ))