Tengo un archivo de volcado de SQL que necesita cargarse usando mysql_query(). Desafortunadamente, no es posible ejecutar múltiples consultas con él.PHP: múltiples consultas SQL en una declaración mysql_query
-> No se puede asumir que el cliente de línea de comandos mysql (mysql --help) está instalado - para cargar el archivo SQL directamente
-> No puede asumirse que el mysqli extensión se instala
/* contents of dump.sql, including comments */
DELETE FROM t3 WHERE body = 'some text; with semicolons; scattered; throughout';
DELETE FROM t2 WHERE name = 'hello';
DELETE FROM t1 WHERE id = 1;
la explotar() a continuación no funcionará debido a que algunos de los valores del contenido volcado contienen puntos y comas.
$sql = explode(';', file_get_contents('dump.sql'));
foreach ($sql as $key => $val) {
mysql_query($val);
}
¿Cuál es la mejor manera de cargar el SQL sin modificar el archivo de volcado?
Tiene casos de punto y coma al final de una línea, pero no es el final de una declaración, p. Ej. dentro del cuerpo de un procedimiento o definición de desencadenante. Y declaraciones como DELIMITER que no terminan en punto y coma. –