根据PHP.net手册,pg_pconnect将创建一个持久连接,或者如果已经存在连接字符串将返回现有连接。
我遇到的问题是我想知道该调用是否确实创建了一个连接或实际返回相同的内容,例如,在第一次连接的情况下加载预准备语句。
真的可以吗?
更新: 有了这个问题,我不是指当前运行的PHP脚本。我想知道连接是否已经某个时间(可能是其他脚本的另一次)或者这个脚本是打开该连接的第一个(例如,因为我重置了PostgreSQL服务器)。
答案 0 :(得分:1)
查看手册。解决方案在其描述中给出。如果已启用持久连接,则返回现有连接,默认情况下启用。根据我的经验,我没有遇到任何问题。希望这会有所帮助。 php.net manual for pg_pconnect()
答案更新:我应该补充一点,通常postgres对其连接非常具有支持性;即使您重置服务,它也会尝试保留连接;所以明智的做法是不要使用“检查预先存在的连接”这一事件,即使你找到了一种检测新连接返回事件的机制,你的手指也是可数的;非常罕见。
我认为你应该改变你的逻辑。