我在浏览器中运行了一个脚本,该脚本在数据库中插入了大约100000条记录。由于某种原因,我删除了编写脚本的文件,但是即使脚本不存在,脚本仍会在数据库中插入记录,这不足为奇。这是为什么?

最佳答案

向Web服务器发出请求时:

  • 该PHP文件已加载到内存中,已编译并正在运行。
  • 由于文件在内存中,因此对磁盘上文件的任何更改均不适用于正在运行的文件。

  • 如果这对您造成了另一个问题,例如:“为什么它会被加载到内存中?为什么不能直接从磁盘上执行它?”:
  • 这里的内存主要是RAM,它在执行读/写操作时较快,这是与处理器速度竞争的需要。
  • HardDisk是一种慢速内存,因此,从它进行访问将使您的程序执行非常慢。

  • 为了与处理器速度匹配,需要将可执行文件从慢速内存(通常为硬盘)加载到更快的内存(通常为Ram或处理器的高速缓存)。

    因此,关于为什么磁盘上的文件与内存中的同步文件不同步的原因和答案。

    另外请放心,这将在您的下一个请求中正常工作!

    但是,如果您仍然希望立即执行此操作,则可以考虑停止/重新启动Apache / IIS(无论哪个适用)服务器,因为这将立即终止该进程。

    关于php - 为什么即使文件不存在,脚本仍保持运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9545610/

    10-11 05:20
    查看更多