有没有办法保存MySQL连接供以后使用?

时间:2017-11-30 12:24:17

标签: php mysql sql

所以,我的情况就是这样。我需要使用PHP脚本和AJAX调用将大型mysql转储导入数据库。

我编写了一个递归的AJAX函数,该函数与PHP脚本进行通信并向后发送所有必要的数据(如.sql文件中指针的位置)以从.sql文件中删除下一个块并运行它直到脚本到达文件末尾。

我遇到的问题是,有些mysql转储让我们说在文件开头定义的变量,并且稍后在文件中使用它们。如果这两段代码不在同一块中,我会收到SQL错误,因为未定义使用的变量。

所以一般来说,我想知道,如果有办法存储会话的连接/状态,以后再恢复它并能够使用会话变量。

谢谢!

1 个答案:

答案 0 :(得分:1)

仅当您使PHP脚本持久化时。在一般的HTTP设置中,每次调用PHP都会创建一个新的PHP实例,该实例在请求结束时被拆除。这必然会结束MySQL会话和您在该请求期间创建的任何临时数据。

您可以在PHP中编写一个持久化的工作程序,它可以无限期地运行并回答来自某种消息总线的请求,例如GearmanØMQCrossbar。所以请求会像:

browser ⇄ web server ⇄ ephemeral PHP instance ⇄ Gearman ⇄ persistent PHP worker

在那个坚持不懈的工作者中,你可以坚持任何你想要的东西。这显然需要一些特殊的服务器设置,并且在通用共享主机上是不可能的。