1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-06 06:07:39 +02:00

calling getResultResource() disables auto-free in __destruct()

This commit is contained in:
David Grudl
2012-01-19 01:57:23 +01:00
parent 5efb11d780
commit 5d41128752
9 changed files with 45 additions and 9 deletions

View File

@@ -35,6 +35,9 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD
/** @var resource Resultset resource */
private $resultSet;
/** @var bool */
private $autoFree = TRUE;
/** @var resource Resultset resource */
private $transaction;
@@ -359,7 +362,7 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD
*/
public function __destruct()
{
$this->getResultResource() && $this->free();
$this->autoFree && $this->getResultResource() && $this->free();
}
@@ -431,6 +434,7 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD
*/
public function getResultResource()
{
$this->autoFree = FALSE;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@@ -34,6 +34,9 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
/** @var resource Resultset resource */
private $resultSet;
/** @var bool */
private $autoFree = TRUE;
/**
@@ -307,7 +310,7 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function __destruct()
{
$this->getResultResource() && $this->free();
$this->autoFree && $this->getResultResource() && $this->free();
}
@@ -387,6 +390,7 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function getResultResource()
{
$this->autoFree = FALSE;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@@ -34,6 +34,9 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResult
/** @var resource Resultset resource */
private $resultSet;
/** @var bool */
private $autoFree = TRUE;
/** @var int|FALSE Affected rows */
private $affectedRows = FALSE;
@@ -314,7 +317,7 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResult
*/
public function __destruct()
{
$this->getResultResource() && $this->free();
$this->autoFree && $this->getResultResource() && $this->free();
}
@@ -393,6 +396,7 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResult
*/
public function getResultResource()
{
$this->autoFree = FALSE;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@@ -46,6 +46,9 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
/** @var resource Resultset resource */
private $resultSet;
/** @var bool */
private $autoFree = TRUE;
/** @var bool Is buffered (seekable and countable)? */
private $buffered;
@@ -390,7 +393,7 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function __destruct()
{
$this->getResultResource() && $this->free();
$this->autoFree && $this->getResultResource() && $this->free();
}
@@ -479,6 +482,7 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function getResultResource()
{
$this->autoFree = FALSE;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@@ -47,6 +47,9 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiResultDri
/** @var mysqli_result Resultset resource */
private $resultSet;
/** @var bool */
private $autoFree = TRUE;
/** @var bool Is buffered (seekable and countable)? */
private $buffered;
@@ -380,7 +383,7 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function __destruct()
{
$this->getResultResource() && $this->free();
$this->autoFree && $this->getResultResource() && @$this->free();
}
@@ -479,6 +482,7 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function getResultResource()
{
$this->autoFree = FALSE;
return @$this->resultSet->type === NULL ? NULL : $this->resultSet;
}

View File

@@ -32,6 +32,9 @@ class DibiOdbcDriver extends DibiObject implements IDibiDriver, IDibiResultDrive
/** @var resource Resultset resource */
private $resultSet;
/** @var bool */
private $autoFree = TRUE;
/** @var int|FALSE Affected rows */
private $affectedRows = FALSE;
@@ -327,7 +330,7 @@ class DibiOdbcDriver extends DibiObject implements IDibiDriver, IDibiResultDrive
*/
public function __destruct()
{
$this->getResultResource() && $this->free();
$this->autoFree && $this->getResultResource() && $this->free();
}
@@ -417,6 +420,7 @@ class DibiOdbcDriver extends DibiObject implements IDibiDriver, IDibiResultDrive
*/
public function getResultResource()
{
$this->autoFree = FALSE;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@@ -34,6 +34,9 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri
/** @var resource Resultset resource */
private $resultSet;
/** @var bool */
private $autoFree = TRUE;
/** @var bool */
private $autocommit = TRUE;
@@ -321,7 +324,7 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function __destruct()
{
$this->getResultResource() && $this->free();
$this->autoFree && $this->getResultResource() && $this->free();
}
@@ -400,6 +403,7 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function getResultResource()
{
$this->autoFree = FALSE;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@@ -33,6 +33,9 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr
/** @var resource Resultset resource */
private $resultSet;
/** @var bool */
private $autoFree = TRUE;
/** @var int|FALSE Affected rows */
private $affectedRows = FALSE;
@@ -380,7 +383,7 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr
*/
public function __destruct()
{
$this->getResultResource() && $this->free();
$this->autoFree && $this->getResultResource() && $this->free();
}
@@ -461,6 +464,7 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr
*/
public function getResultResource()
{
$this->autoFree = FALSE;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@@ -36,6 +36,9 @@ class DibiSqlite3Driver extends DibiObject implements IDibiDriver, IDibiResultDr
/** @var SQLite3Result Resultset resource */
private $resultSet;
/** @var bool */
private $autoFree = TRUE;
/** @var string Date and datetime format */
private $fmtDate, $fmtDateTime;
@@ -317,7 +320,7 @@ class DibiSqlite3Driver extends DibiObject implements IDibiDriver, IDibiResultDr
*/
public function __destruct()
{
$this->resultSet && @$this->free();
$this->autoFree && $this->resultSet && @$this->free();
}
@@ -411,6 +414,7 @@ class DibiSqlite3Driver extends DibiObject implements IDibiDriver, IDibiResultDr
*/
public function getResultResource()
{
$this->autoFree = FALSE;
return $this->resultSet;
}