Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:如何知道PostgreSQL持久连接是否已经打开?_Php_Postgresql_Persistent Connection - Fatal编程技术网

PHP:如何知道PostgreSQL持久连接是否已经打开?

PHP:如何知道PostgreSQL持久连接是否已经打开?,php,postgresql,persistent-connection,Php,Postgresql,Persistent Connection,根据PHP.net手册,pg_pconnect将创建一个持久连接,如果已经存在的连接字符串相同,则返回现有连接 我的问题是,我想知道该调用是否确实创建了一个连接,或者是否实际返回了相同的连接,例如,在第一个连接的情况下加载准备好的语句 这真的可能吗 更新: 关于这个问题,我不是指当前正在运行的PHP脚本。我想知道连接是否在某个时候打开过(可能在另一时间由其他脚本打开),或者此脚本是第一个打开该连接的脚本(例如,因为我重置了PostgreSQL server)。查看手册。解决方案在其描述中给出。如

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

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

这真的可能吗

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

查看手册。解决方案在其描述中给出。如果启用了持久连接,则返回现有连接,这是默认启用的连接。根据我的经验,我对此没有问题。希望这能有所帮助

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


我想你应该改变你的逻辑。

我应该澄清一下我的问题,很抱歉我理解错了。我会相应地更新我的问题。我希望你已经读过了。是的,我已经读过了。谢谢你,这只是一个想法,还没有实现,但是是的。似乎我需要在任何时候打开连接(尽管它可能已经打开)加载准备好的句子,并且忽略它是否失败,因为它已经加载了?