如何通过Ajax将数百万行从数据库导出到CSV?

时间:2019-03-27 17:31:47

标签: php mysql ajax csv

我的数据库中有百万行。我需要将所有这些导出到csv文件中。 问题是我有超时限制错误。

所以。我决定通过ajax来做。

我创建了一个ajax,可以为我生成一些tmp csv文件

function chunkedExport()
{
    $.ajax({
        type: "POST",
        url: "transactions/",
        dataType: "JSON",
        data: $("#transactions").serialize(),
        async: false,
        success: function(response)
        {
            if (response.status === "continue")
            {
                $("#start_from").val(response.start_from);
                $("#client_file_name").val(response.client_file_name);
                $("#file_name").val(response.tmp_file_name);
                $("#step").val(response.step);
                chunkedExport();
            } else {
                console.log('DOWNLOAD');
                $("#start_from").val(0);
                $("#client_file_name").val('');
                $("#file_name").val('');
                $("#step").val(1);
                $("#export_type").val("");
                $('#csv_format').val("");

                document.location.href = '/transactions_export_csv/'+response.client_file_name+'/'+response.tmp_file_name+'/'+response.total_iterations+'/'
            }
        },
        error: function (xhr, ajaxOptions, thrownError) {
            console.log([xhr, ajaxOptions, thrownError]);
            $("#start_from").val(0);
            $("#client_file_name").val('');
            $("#file_name").val('');
            $("#step").val(1);
            $("#export_type").val("");
            $('#csv_format').val("");
        }
    });
}

问题是如何将它们全部组合成一个csv文件并下载?

0 个答案:

没有答案