Questa domanda sorge di tanto in tanto. Non esiste una buona soluzione per eseguire uno script .sql direttamente da PHP. Esistono casi limite in cui le istruzioni comuni in uno script .sql non possono essere eseguite come istruzioni SQL. Ad esempio, lo strumento mysql ha comandi integrati
che non vengono riconosciuti dal server MySQL, ad es. CONNECT
, TEE
, STATUS
e DELIMITER
.
Quindi do +1 a risposta
. Dovresti eseguire il tuo script .sql in PHP invocando mysql
strumento, ad esempio con shell_exec()
.
Ho fatto funzionare questo test:
$command = "mysql --user={$vals['db_user']} --password='{$vals['db_pass']}' "
. "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";
$output = shell_exec($command . '/shellexec.sql');
Vedi anche le mie risposte a queste domande correlate:
- Caricamento di file .sql dall'interno PHP
- è possibile chiamare uno script sql da una stored procedure in un altro script sql?
- PHP:più query SQL in un'unica istruzione mysql_query