我正在将SQL查询结果写入文件,一旦我将其写入文件,我需要将文件输出到用户下载。我的问题是如何知道文件何时完全写入,因为不同的SQL查询需要不同的时间。反正我知道文件是用PHP完全编写的吗?
答案 0 :(得分:1)
你的问题缺乏很多细节,所以我认为不能给出明确的答案。
如果您使用的文件系统允许您打开具有独占写访问权限的文件,则查询脚本可以以这种方式打开文件,然后在另一个脚本上,您只需尝试重复打开具有写访问权限的文件直到通话成功,此时你知道另一个进程关闭了它。
假设上述情况不可能,另一个选择是实现一些机制,通过该机制,查询脚本可以向另一个脚本发出写入完成的信号。例如,您可以将某种标记写为文件的最后一行,保证永远不会出现在SQL查询输出中。
我希望这会有所帮助。如果没有,您可能需要在问题中添加更多详细信息,以便更好地理解问题。
答案 1 :(得分:0)
如何将SQL查询结果写入文件?
如果你正在使用PHP流,或许请查看set_stream_blocking函数here,特别是关于使用fwrite和检查返回值的注释,它可以让你知道已经写了多少数据
答案 2 :(得分:0)
如果你有多个进程能够写入同一个文件,那么我会说不,你不能说该文件是否完全写入。就像要知道日志文件是否完全写入一样 - 这通常不会发生。
但是,如果在某些情况下您知道该文件已完全写入(例如,当文件达到一定大小,或者写入一定量的查询时),那么您可以使用一些标志 - 在满足条件时更改标志的值,并在标志具有特定值时向用户显示该文件