【发布时间】:2015-08-14 22:00:00
【问题描述】:
出于某种原因,我想将 postgresql 连接超时设置为 5 秒。我使用的是 Zend Framework 1.12,为了创建 postgresql 连接,我使用的是 Zend_Db_Adapter_Pdo_Pgsql 类,我没有找到任何可以定义连接超时的参数。
我四处寻找,但一无所获。请给我一些建议,我该怎么做。
谢谢
【问题讨论】:
标签: php postgresql zend-framework pdo
出于某种原因,我想将 postgresql 连接超时设置为 5 秒。我使用的是 Zend Framework 1.12,为了创建 postgresql 连接,我使用的是 Zend_Db_Adapter_Pdo_Pgsql 类,我没有找到任何可以定义连接超时的参数。
我四处寻找,但一无所获。请给我一些建议,我该怎么做。
谢谢
【问题讨论】:
标签: php postgresql zend-framework pdo
我找到了解决办法:你需要在每次查询之前设置一个超时时间:
$db->beginTransaction();
$db->query('SET LOCAL statement_timeout = 2000'); //2 Sek. Timeout
$res = $db->fetchAll($select);
这只影响对数据库的 NEXT 查询,重要的是你有一个事务。没有事务,它将无法工作。 如果您在它之后进行了另一个查询(捕获超时,回滚事务),它仍然具有默认的 TIMEOUT。 创建数据库例程将不起作用!你真的必须在你的函数中设置超时。
【讨论】: