我正在使用 mySql INTO OUTFILE 生成包含 sql 数据的文件。
$wpdb->query("SELECT * INTO OUTFILE 'result.sql' FROM ". DB_PHOTOS .";");
我现在想将文件下载到客户端(使用 PHP)。因为它是一个 WordPress 插件,所以我不想特定于位置(如 c:/result)。如何使用 PHP 获取该文件并下载它?
我正在使用 mySql INTO OUTFILE 生成包含 sql 数据的文件。
$wpdb->query("SELECT * INTO OUTFILE 'result.sql' FROM ". DB_PHOTOS .";");
我现在想将文件下载到客户端(使用 PHP)。因为它是一个 WordPress 插件,所以我不想特定于位置(如 c:/result)。如何使用 PHP 获取该文件并下载它?
形成mysql手册:
SELECT ... INTO OUTFILE 语句的主要目的是让您非常快速地将表转储到服务器机器上的文本文件中。如果要在服务器主机以外的其他主机上创建结果文件,通常不能使用 SELECT ... INTO OUTFILE,因为无法写入相对于服务器主机文件系统的文件路径。
这意味着,如果您的 php 和 mysql 在同一台本地计算机上,您可以将文件转储到特定位置,然后将文件移动到更好的位置或直接提供它有点像readfile()
如果 DB 和 Web 服务器位于不同的机器上,这确实是不可用的。取决于您的意图,理论上您可以mysql -e "SELECT ..." > file_name
通过 system() 调用在本地生成文件,但它也不是通用的。
“temp”目录允许写入几乎所有托管服务提供商。一种解决方案是写入“/tmp”(Linux)或 %TEMP%(Windows)。
完成后,PHP 脚本可以将该文件流式传输到客户端,并在流式传输完成后删除。