Je hebt meer probleemgevallen dan alleen puntkomma's binnen strings.
- Script ingebouwd
commando's die niet kunnen worden uitgevoerd door
mysql_query()
, zoalsUSE
. - Statementen die niet worden afgesloten met een puntkomma, zoals
DELIMITER
. - Statements die puntkomma's bevatten, maar niet tussen aanhalingstekens, zoals
CREATE PROCEDURE
.
Ik ken geen gemakkelijke manier om deze taak uit te voeren, zonder naar de mysql-opdrachtregelclient te gaan. Ik realiseer me dat je zei dat je er niet op kunt vertrouwen dat die client aanwezig is, maar zonder die client heb je een grote hoeveelheid PHP-code nodig om het script te ontleden en instructies op de juiste manier uit te voeren.
Mogelijk kunt u dergelijke code vinden in de phpMyAdmin Product. Dat product is echter gelicentieerd onder de GPL, dus als u een van de code gebruikt, moet u ook uw eigen project onder de GPL licentiëren.
Zie ook mijn antwoorden op deze gerelateerde vragen:
- MySQL *.sql-bestanden uitvoeren in PHP
- .sql-bestanden van binnenuit laden PHP
- is het mogelijk om een sql-script aan te roepen vanuit een opgeslagen procedure in een ander sql-script?