From 973e7365d509946f0a67d74648776dbaa05834ab Mon Sep 17 00:00:00 2001 From: JargonMan Date: Wed, 8 Aug 2018 16:49:27 -0400 Subject: [PATCH] Added IbmDb2 db2_pclose to disconnect Updated the disconnect method to choose db2_pclose or db2_close based on the resource's connectionParameter for persistence. --- src/Adapter/Driver/IbmDb2/Connection.php | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/Adapter/Driver/IbmDb2/Connection.php b/src/Adapter/Driver/IbmDb2/Connection.php index 8c7a68bd51..733e5f826e 100644 --- a/src/Adapter/Driver/IbmDb2/Connection.php +++ b/src/Adapter/Driver/IbmDb2/Connection.php @@ -149,7 +149,28 @@ public function isConnected() public function disconnect() { if ($this->resource) { - db2_close($this->resource); + + // localize + $p = $this->connectionParameters; + + // given a list of key names, test for existence in $p + $findParameterValue = function (array $names) use ($p) { + foreach ($names as $name) { + if (isset($p[$name])) { + return $p[$name]; + } + } + + return; + }; + $isPersistent = $findParameterValue(['persistent', 'PERSISTENT', 'Persistent']); + + if ((bool) $isPersistent) { + db2_pclose($this->resource); + } else { + db2_close($this->resource); + } + $this->resource = null; }