Du har flere problemtilfælde end blot semikolon i strenge.
- Script indbygget
kommandoer, der ikke kan udføres af
mysql_query()
, f.eks.USE
. - Udsagn, der ikke afsluttes med semikolon, såsom
DELIMITER
. - Udsagn, der indeholder semikolon, men ikke inden for anførselstegn, såsom
CREATE PROCEDURE
.
Jeg kender ikke til en nem måde at håndtere denne opgave på, uden at gå til mysql-kommandolinjeklienten. Jeg er klar over, at du sagde, at du ikke kan stole på, at den klient er til stede, men uden den klient har du brug for en stor mængde PHP-kode for at parse scriptet og udføre sætninger korrekt.
Du kan muligvis finde en sådan kode i phpMyAdmin produkt. Dette produkt er dog licenseret under GPL, så hvis du bruger nogen af koden, skal du også licensere dit eget projekt under GPL.
Se også mine svar på disse relaterede spørgsmål:
- Kører MySQL *.sql-filer i PHP
- Indlæser .sql-filer indefra PHP
- er det muligt at kalde et sql-script fra en lagret procedure i et andet sql-script?