我有一个 foreach 循环,它在其中 fork 。在进程 fork 后,它访问数据库。我收到一个错误:
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
问题是,我在 fork 后 连接到数据库。
我的问题:为什么会这样?
如果发生这种情况,我实际上是在 fork 之前访问数据库吗? child 会继承数据库连接吗?
(注意:我可以发布代码,但它相当大,因为它都在类中,这可能是导致我在访问数据库时感到困惑的原因。您应该知道的另一件事是我正在使用 ZF。 )
最佳答案
(评论 --> 根据发帖者的要求回答)
阅读更多内容后,我看到 fork 的 child 确实继承了他们 parent 的数据库连接,这是一个已知问题:http://php.net/manual/en/function.pcntl-fork.php#70721
关于php - pcntl_fork 和 MySQL 连接消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3668615/