Из личного опыта:
- "сервер похоже не вывозит выпадая с 500 ошибкой" - а лог ошибок на что? Там все написано, почему падает.
- самое страшное - делать запросы на изменение данных вне явно открытой транзакции в транзакционную таблицу (InnoDB). set autocommit=0, стартуете транзакцию и можно циклом вставлять данные. Неявная транзакция на каждый запрос замедляет работу раз в 100-200.
- вариант
@zelenin'а c пакетным запросом - вообще не пробовал, но может быть хорошей альтернативой явным транзакциям.
- нет никакой нужды выполнять такое через веб, и иметь нюансы, с ним связанные - таймлимиты php и самого веб-сервера. Выполняйте импорт, запуская скрипт из командной строки. Я так демонов делал, работали по принципу "запустил и забыл", но это уже совсем другая история.
Вообще ~1300 записей о отелях и 32000 фотки (чисто url'ы с описаниями, наверно?) - не так много данных, скорее всего узкое место у вас - именно передача данных из PHP в MYSQL.