Máte více problémových případů než jen středníky v řetězcích.
- Skript vestavěný
příkazy, které nelze provést pomocí
mysql_query()
, napříkladUSE
. - Výpisy, které nejsou ukončeny středníkem, jako je
DELIMITER
. - Příkazy, které obsahují středníky, ale ne v uvozovkách, jako
CREATE PROCEDURE
.
Neznám snadný způsob, jak tento úkol zvládnout, aniž bych se musel obrátit na klienta příkazového řádku mysql. Uvědomuji si, že jste řekl, že se nemůžete spolehnout na přítomnost tohoto klienta, ale bez tohoto klienta potřebujete velké množství kódu PHP k analýze skriptu a správnému provádění příkazů.
Takový kód můžete najít v phpMyAdmin produkt. Tento produkt je však licencován pod licencí GPL, takže pokud použijete jakýkoli kód, musíte také licencovat svůj vlastní projekt pod licencí GPL.
Viz také mé odpovědi na tyto související otázky:
- Spouštění souborů MySQL *.sql v PHP
- Načítání souborů .sql zevnitř PHP
- je možné volat skript SQL z uložené procedury v jiném skriptu SQL?