Hai più casi problematici rispetto ai semplici punti e virgola all'interno delle stringhe.
- Script integrato
comandi che non possono essere eseguiti da
mysql_query()
, comeUSE
. - Dichiarazioni che non terminano con un punto e virgola, come
DELIMITER
. - Dichiarazioni che contengono punto e virgola, ma non tra virgolette, come
CREATE PROCEDURE
.
Non conosco un modo semplice per gestire questa attività, senza sborsare al client della riga di comando mysql. Mi rendo conto che hai detto che non puoi fare affidamento sulla presenza di quel client, ma senza quel client, hai bisogno di una grande quantità di codice PHP per analizzare lo script ed eseguire le istruzioni in modo appropriato.
Potresti essere in grado di trovare tale codice all'interno di phpMyAdmin Prodotto. Tuttavia, quel prodotto è concesso in licenza sotto GPL, quindi se usi uno qualsiasi dei codici, devi anche concedere in licenza il tuo progetto sotto GPL.
Vedi anche le mie risposte a queste domande correlate:
- Esecuzione di file MySQL *.sql in PHP
- Caricamento di file .sql dall'interno PHP
- è possibile chiamare uno script sql da una stored procedure in un altro script sql?