mySql与php的文件导出问题

mySql与php的文件导出问题,php,mysql,sql,into-outfile,Php,Mysql,Sql,Into Outfile,我正在使用mySql生成一个包含sql数据的文件 $wpdb->query("SELECT * INTO OUTFILE 'result.sql' FROM ". DB_PHOTOS .";"); 我现在想下载文件到客户端(使用PHP)。因为它是一个WordPress插件,所以我不希望是特定于位置的(比如c:/result)。如何使用PHP获取并下载该文件?从mysql手册中: 选择。。。INTO OUTFILE语句主要用于让您非常快速地将表转储到服务器机器上的文本文件中。如果要在服务

我正在使用mySql生成一个包含sql数据的文件

$wpdb->query("SELECT * INTO OUTFILE 'result.sql'  FROM ". DB_PHOTOS .";");
我现在想下载文件到客户端(使用PHP)。因为它是一个WordPress插件,所以我不希望是特定于位置的(比如c:/result)。如何使用PHP获取并下载该文件?

从mysql手册中:

选择。。。INTO OUTFILE语句主要用于让您非常快速地将表转储到服务器机器上的文本文件中。如果要在服务器主机以外的其他主机上创建结果文件,通常不能使用SELECT。。。由于无法写入相对于服务器主机文件系统的文件路径,因此无法将其写入OUTFILE

这意味着,如果您的php和mysql在同一台本地计算机上,您可以将文件转储到特定位置,然后将文件移动到更好的位置,或者直接为其提供服务

的确,如果DB和Web服务器位于不同的机器上,这将不可用。根据您的意图,理论上您可以通过system()调用使用
mysql-e“SELECT…”>file\u name
在本地生成文件,但它也不是通用的。

“temp”目录允许在几乎所有主机提供商上进行写入。一种解决方案是写入“/tmp”(Linux)或%TEMP%(Windows)


完成后,PHP脚本可以将该文件流式传输到客户端,并在流式传输完成后删除。

问题在于我无法控制主机。mySql和PHP可以在同一台服务器上,不能!是的,我明白,但重点是。。。文件将始终保存在MySQL服务器端(许多主机可能不允许)。根据您的需要,您可以尝试实现类似于我在编辑原始答案时建议的内容。