Masz więcej problemów niż tylko średniki w ciągach.
- Skrypt wbudowany
polecenia, które nie mogą być wykonane przez
mysql_query()
, jakUSE
. - Stwierdzenia, które nie są zakończone średnikiem, takie jak
DELIMITER
. - Oświadczenia zawierające średniki, ale bez cudzysłowów, takie jak
CREATE PROCEDURE
.
Nie znam łatwego sposobu na poradzenie sobie z tym zadaniem, bez rzucania się na klienta wiersza poleceń mysql. Zdaję sobie sprawę, że powiedziałeś, że nie możesz polegać na obecności tego klienta, ale bez tego klienta potrzebujesz dużej ilości kodu PHP, aby przeanalizować skrypt i odpowiednio wykonać instrukcje.
Możesz znaleźć taki kod w phpMyAdmin produkt. Jednak ten produkt jest objęty licencją GPL, więc jeśli używasz jakiegokolwiek kodu, musisz również licencjonować swój własny projekt na GPL.
Zobacz także moje odpowiedzi na te powiązane pytania:
- Uruchamianie plików MySQL *.sql w PHP
- Ładowanie plików .sql od wewnątrz PHP
- czy można wywołać skrypt sql z procedury składowanej w innym skrypcie sql?