2

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

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

真的有可能吗?

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

4

1 回答 1

1

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

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

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

于 2012-06-12T05:57:00.460 回答