Создание бэкапа базы данных на PHP

PHP
Автор кода неизвестен. Я немного исправил функцию, "подружил" ее с PHP 7, исправил ошибки и удалил лишний, на мой взгляд код:
function backup_database_tables($host, $user, $pass, $name, $tables)
{
    $link = new mysqli($host, $user, $pass, $name);
    $link->set_charset('utf8');

    if ($tables == '*')
    {
        $tables = array();
        $result = $link->query('SHOW TABLES');

        while($row = $result->fetch_row())
        {
            $tables[] = $row[0];
        }
    }
    else
    {
        $tables = is_array($tables) ? $tables : explode(',', $tables);
    }

    $return = null;
    foreach ($tables as $table)
    {
        $table = trim($table);

        $result      = $link->query('SELECT * FROM ' . $table);
        $num_fields  = $result->field_count;
        $query       = $link->query('SHOW CREATE TABLE ' . $table);
        $row2        = $query->fetch_row();
        $return     .= $row2[1] . ";\n\n";

        for ($i = 0; $i < $num_fields; $i++)
        {
            while($row = $result->fetch_row())
            {
                $return .= 'INSERT INTO `' . $table . '` VALUES(';
                for($j = 0; $j < $num_fields; $j++)
                {
                    $row[$j] = addslashes($row[$j]);
                    if (isset($row[$j]))
                    {
                        $return.= '\'' . $row[$j] . '\'' ;
                    } 
                    else
                    {
                        $return.= '\'\'';
                    }

                    if ($j < ($num_fields - 1))
                    { 
                        $return .= ', ';
                    }
                }

                $return .= ');' . "\n";
            }
        }

        $return .= "\n";
    }

    $handle = fopen('db-backup-' . time() . '.sql', 'w+');
    fwrite($handle, $return);
    fclose($handle);
} 

Вызывается функция так же:
backup_database_tables('HOST', 'USERNAME', 'PASSWORD', 'DATABASE', '*');