Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php excel导出无法从mysql获取太多数据_Php_Mysql_Excel - Fatal编程技术网

Php excel导出无法从mysql获取太多数据

Php excel导出无法从mysql获取太多数据,php,mysql,excel,Php,Mysql,Excel,我有一个用php从mysql获取数据并将其导出到excel文件的代码,它是这样的: <?php $xls_filename = "export_".rand(100000,999999).".xls"; // Define Excel (.xls) file name // Header info settings header("Content-Type: application/xls"); header("Content-Disposition: attachment; filen

我有一个用php从mysql获取数据并将其导出到excel文件的代码,它是这样的:

<?php
$xls_filename = "export_".rand(100000,999999).".xls"; // Define Excel (.xls) file name

// Header info settings
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$xls_filename");
header("Pragma: no-cache");
header("Expires: 0");

/***** Start of Formatting for Excel *****/
// Define separator (defines columns in excel &amp; tabs in word)
$sep = "\t"; // tabbed character

$slct2 = $dbh->prepare("SELECT * FROM forms_answers WHERE ans_formid='{$identity}'");
$slct2->execute();

while($name = $slct2->fetch(PDO::FETCH_ASSOC)) {
    $stmt2 = $dbh->prepare("SELECT * FROM forms_answers_details WHERE ans_id='{$name['ans_id']}'");
    $stmt2->execute();

    // Start of printing column names as names of MySQL fields
    for($i=0; $i<$stmt2->columnCount(); $i++) {
        echo $stmt2->getColumnMeta($i)."\t";
    }

    print("\n");
    // End of printing column names

    // Start while loop to get data
    while($row = $stmt2->fetch(PDO::FETCH_ASSOC)) {
        $schema_insert = "";

        for($j=0; $j<$stmt2->columnCount(); $j++) {
            if(!isset($row[$j])) {
                $schema_insert .= "NULL".$sep;
            }
            elseif(isset($row[$j])) {
                $schema_insert .= "$row[$j]".$sep;
            }
            else {
                $schema_insert .= "".$sep;
            }
        }
        $schema_insert = str_replace($sep."$", "", $schema_insert);
        $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
        $schema_insert .= "\t";
        print(trim($schema_insert));
        print "\n";
    }
}
?>
$slct2=$dbh->prepare(“从表单中选择*,其中ans\u formid='{$identity}'限制1000”)

$stmt2=$dbh->prepare(“从表单答案详细信息中选择*,其中ans_id='{$name['ans_id']}'限制1000”)

试试这个,Db服务器可能会设置限制

根据数据更改限额

否则,由于内存和执行时间不足,它的进程也有可能中途中断

试着用这两行

ini设置(“最大执行时间”,300)
ini_集('内存限制','512M')

在提取数据之前,将这两行放在最前面


这将对您有所帮助。

您能和我们分享一个例子吗?您需要在crunch中导出数据,即在sql查询中设置限制