function SQLFromFile($file) { global $db, $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DB_NAME, $MYSQL_CHARSET; // try to upload dump via exec("mysql") $err_code = 127; @exec("mysql --host={$MYSQL_HOST} --user={$MYSQL_USER}" . ($MYSQL_PASSWORD ? " --password={$MYSQL_PASSWORD} " : "") . ((double) mysql_get_server_info() > 4 ? " --default-character-set={$MYSQL_CHARSET} " : "") . " {$MYSQL_DB_NAME} < {$file} 2>&1", $output, $err_code); // exec failed if ($err_code) { $mysql_dump = new MYSQL_DUMP($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_CHARSET); // $sql = $mysql_dump->dumpDB($MYSQL_DB_NAME); if ($mysql_dump->restoreDB($file) == false) { echo $mysql_dump->error(); return false; } } return true; }
function restore_dump($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DB_NAME, $MYSQL_CHARSET) { // Try via command-line mysql first $err_code = 127; $path = dirname(__FILE__) . DIRECTORY_SEPARATOR; $exec_str = "mysql --host=" . escapeshellarg($MYSQL_HOST) . " --user="******" --password="******" --default-character-set={$MYSQL_CHARSET} " : "") . " " . escapeshellarg($MYSQL_DB_NAME) . " < {$path}netcat.sql 2>&1"; exec($exec_str, $output, $err_code); if ($err_code) { $mysql_dump = new MYSQL_DUMP($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_CHARSET); $mysql_dump->dumpDB($MYSQL_DB_NAME); if ($mysql_dump->restoreDB("{$path}netcat.sql") == false) { echo "Failed to import MySQL dump:<br />\n"; echo $mysql_dump->error(); echo "Cmdline output: \n<br />\n"; foreach ($output as $l) { echo $l . "\n<br />"; } echo "\n<br />\n"; return false; } } return true; }