开发者社区 问答 正文

php下载mysql数据:报错

php下载mysql数据.量比较大,大约有5到50万的数据。

php从数据库中读取,输出txt给用户下载

$list="连接数据库,查询数据";
$SelectField="这个表的字段";


header ("Content-Type: application/octet-stream");
$filename = "1.txt";
if (preg_match ("/MSIE/",$_SERVER['HTTP_USER_AGENT'])) {
header ('Content-Disposition:  attachment; filename="' . $filename . '"');
} elseif (preg_match ("/Firefox/",$_SERVER['HTTP_USER_AGENT'])) {
header ('Content-Disposition: attachment; filename*="' . $filename . '"');
} else {
header ('Content-Disposition: attachment; filename="' . $filename . '"');
}

foreach ($SelectField as $key => $value) {
     //输出字段              
}

foreach ($List as $keyTop => $valueTop) {
	echo "\r\n";
	foreach ($SelectField as $key => $value) {
			echo $value;	//输出字段里每一个值	
	}
}



数据量小还可以,数据量大就不行了。很慢很慢。各位有什么办法可以帮帮我,说一下思路也行。

数据库和程序不是同一服务器。不可以用sql语句生成txt

展开
收起
kun坤 2020-06-07 20:25:13 622 分享 版权
1 条回答
写回答
取消 提交回答
  • 明显sql语句干的事情 非得用 php 干######

    这个数量级,使用phpMyAdmin就可以export出来吧。

    比较大的,要管理员登录到服务器上使用命令行导出,灰常快,1G数据用不了1分钟。

    #/your mysql path/bin/mysqldump -u root -p database_name > /your destination path/xxx.sql

    输入root密码。当然其它有权限的用户也可以。

    输入命令后

    ######使用mysql的into outfile导出数据到一个文件,然后php提供下载功能。######回复 @半醉人间 : 是的,into oufile只能导出到数据库本地,可以再使用scp复制到php服务器,或者直接用mysqldump######这个要求php和mysql同一个服务器吧?
    2020-06-07 20:25:19
    赞同 展开评论