【问题标题】:PHP: How to know if a PostgreSQL persistent connection is already opened?PHP:如何知道 PostgreSQL 持久连接是否已经打开?
【发布时间】:2012-06-12 05:44:21
【问题描述】:

根据 PHP.net 手册,pg_pconnect 将创建一个持久连接,如果它已经存在,则返回现有的连接字符串。

我的问题是我想知道该调用是否确实创建了一个连接或实际上返回了相同的连接,例如,在它是第一个连接的情况下加载准备好的语句。

真的可以吗?

更新: 对于这个问题,我并不是指当前正在运行的 PHP 脚本。我想知道连接是否已打开某个时间(可能在其他时间被其他脚本打开)或者这个脚本是第一个打开该连接的脚本(例如,因为我重置了 PostgreSQL 服务器)。

【问题讨论】:

    标签: php postgresql persistent-connection


    【解决方案1】:

    查看手册。解决方案在其描述中给出。如果您启用了持久连接,它将返回现有连接,这是默认启用的。根据我的经验,我对此没有任何问题。希望这会有所帮助。 php.net manual for pg_pconnect()

    回答已更新:我应该补充一点,通常 postgres 对其连接非常有把握;即使您重置服务,它也会尝试保留连接;因此,明智的做法是不要使用“检查预先存在的连接”这个事件,因为即使您找到了检测新连接返回事件的机制,它也可以用手指数数;非常罕见。

    我认为你应该改变你的逻辑。

    【讨论】:

    • 我应该澄清一下我的问题,很抱歉造成误解。我会相应地更新我的问题。
    • 是的,我已经读过了。谢谢,这只是一个想法,尚未实施,但是是的。似乎我需要在打开连接的任何时候加载准备好的句子(尽管它可能已经打开)并且如果它失败了就忽略它,因为它已经加载了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 2011-02-16
    • 2023-03-30
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    相关资源
    最近更新 更多