Esta pregunta surge de vez en cuando. No existe una buena solución para ejecutar un script .sql directamente desde PHP. Hay casos extremos en los que las declaraciones comunes en un script .sql no se pueden ejecutar como declaraciones SQL. Por ejemplo, la herramienta mysql tiene comandos integrados
que no son reconocidos por el servidor MySQL, p. CONNECT
, TEE
, STATUS
y DELIMITER
.
Así que doy +1 al respuesta
. Debe ejecutar su secuencia de comandos .sql en PHP invocando mysql
herramienta, por ejemplo con shell_exec()
.
Tengo esta prueba funcionando:
$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');
Vea también mis respuestas a estas preguntas relacionadas:
- Cargar archivos .sql desde dentro PHP
- ¿es posible llamar a un script sql desde un procedimiento almacenado en otro script sql?
- PHP:múltiples consultas SQL en una declaración mysql_query