$databases = array();
$path = '/Path/To/Directory';
$main_link = mysqli_connect('localhost', 'USERNAME', 'PASSWORD');
$files = scandir($path);
$ignore_files = array();
foreach($files as $file)
{
if (!in_array($file, $ignore_files))
{
$database = substr($file, 0, strpos($file,'.'));
$databases[] = $database;
mysqli_query($main_link, "DROP DATABASE IF EXISTS $database") or die ("$database 1" . mysqli_error($main_link));
mysqli_query($main_link, "CREATE DATABASE $database") or die ("$database 2" .mysqli_error($main_link));
$db_link = mysqli_connect('localhost', 'USERNAME', 'PASSWORD', $database);
//In here a whole database dump with scheam + data is executed.
mysqli_multi_query($db_link, file_get_contents($path.'/'.$file)) or die ("$database 4" .mysqli_error($db_link));
}
}
Al ejecutar esta secuencia de comandos, se realizó muy rápidamente (se devolvió al navegador), pero aún se estaban ejecutando consultas después de que el navegador dijo que se había hecho. ¿Por qué es esto?php mysqli ¿multi consulta asíncrona?
qué * it * seguía ejecutándose * qué *, y ¿cómo lo sabes? –
Sí, me gustaría saberlo también ... Las consultas no deberían ejecutarse de manera asíncrona. Incluso múltiples consultas (?) Porque también pueden tener resultados. – Rudie
@Dagon Tal vez hizo una LISTA DE PROCESOS 'SHOW' ... @Chris' top | grep mysql' no sería preciso, porque los demonios y procesos de mysql siempre se están ejecutando. – Rudie