В принципе в конце каждого запроса стоит ";", т.е. считываешь и "склеиваешь" строки до появления в конце строки ";" (т.е. до выполнения preg_match("/;$/", $str) ) это и будет конец запроса, саму точку с запятой убираешь, а запрос выполняешь (с помощью mysql_query) и всё. Если нужны только INSERT, то просто проверяешь начинается ли нужный запрос на слово INSERT. Там абсолютно ничего сложного, чтобы копаться в phpMyAdmin (который к тому же глючит с большими запросами, которые спокойно "съедают" MySQL-Front и небольшой мой скриптик, написанный на скорую руку).
Насчет считывания построчно, ничего плохого в этом нет, учитывая, что дамп это обычный текстовый файл, и обычно один инсерт это одна строка...