1
0
mirror of https://github.com/dg/dibi.git synced 2025-02-19 15:45:27 +01:00

drivers: getResource() and getResultResource() checks if resource is alive

This commit is contained in:
David Grudl 2012-01-19 03:02:36 +01:00
parent c7b9a91fc2
commit 660a9db522
11 changed files with 30 additions and 28 deletions

View File

@ -235,7 +235,7 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD
*/
public function getResource()
{
return $this->connection;
return is_resource($this->connection) ? $this->connection : NULL;
}
@ -359,7 +359,7 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD
*/
public function __destruct()
{
$this->resultSet && @$this->free();
$this->getResultResource() && $this->free();
}
@ -431,7 +431,7 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD
*/
public function getResultResource()
{
return $this->resultSet;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@ -177,7 +177,7 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function getResource()
{
return $this->connection;
return is_resource($this->connection) ? $this->connection : NULL;
}
@ -307,7 +307,7 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function __destruct()
{
$this->resultSet && @$this->free();
$this->getResultResource() && $this->free();
}
@ -387,7 +387,7 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function getResultResource()
{
return $this->resultSet;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@ -184,7 +184,7 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResult
*/
public function getResource()
{
return $this->connection;
return is_resource($this->connection) ? $this->connection : NULL;
}
@ -314,7 +314,7 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResult
*/
public function __destruct()
{
$this->resultSet && @$this->free();
$this->getResultResource() && $this->free();
}
@ -393,7 +393,7 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResult
*/
public function getResultResource()
{
return $this->resultSet;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}
}

View File

@ -255,7 +255,7 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function getResource()
{
return $this->connection;
return is_resource($this->connection) ? $this->connection : NULL;
}
@ -384,7 +384,7 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function __destruct()
{
$this->resultSet && @$this->free();
$this->getResultResource() && $this->free();
}
@ -473,7 +473,7 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv
*/
public function getResultResource()
{
return $this->resultSet;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}
}

View File

@ -252,7 +252,7 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function getResource()
{
return $this->connection;
return @$this->connection->thread_id ? $this->connection : NULL;
}
@ -380,7 +380,7 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function __destruct()
{
$this->resultSet && @$this->free();
$this->getResultResource() && $this->free();
}
@ -479,7 +479,7 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function getResultResource()
{
return $this->resultSet;
return @$this->resultSet->type === NULL ? NULL : $this->resultSet;
}
}

View File

@ -200,7 +200,7 @@ class DibiOdbcDriver extends DibiObject implements IDibiDriver, IDibiResultDrive
*/
public function getResource()
{
return $this->connection;
return is_resource($this->connection) ? $this->connection : NULL;
}
@ -327,7 +327,7 @@ class DibiOdbcDriver extends DibiObject implements IDibiDriver, IDibiResultDrive
*/
public function __destruct()
{
$this->resultSet && @$this->free();
$this->getResultResource() && $this->free();
}
@ -417,7 +417,7 @@ class DibiOdbcDriver extends DibiObject implements IDibiDriver, IDibiResultDrive
*/
public function getResultResource()
{
return $this->resultSet;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@ -191,7 +191,7 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function getResource()
{
return $this->connection;
return is_resource($this->connection) ? $this->connection : NULL;
}
@ -321,7 +321,7 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function __destruct()
{
$this->resultSet && @$this->free();
$this->getResultResource() && $this->free();
}
@ -400,7 +400,7 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function getResultResource()
{
return $this->resultSet;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@ -231,7 +231,7 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr
*/
public function getResource()
{
return $this->connection;
return is_resource($this->connection) ? $this->connection : NULL;
}
@ -374,7 +374,7 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr
*/
public function __destruct()
{
$this->resultSet && @$this->free();
$this->getResultResource() && $this->free();
}
@ -455,7 +455,7 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr
*/
public function getResultResource()
{
return $this->resultSet;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@ -202,7 +202,7 @@ class DibiSqliteDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function getResource()
{
return $this->connection;
return is_resource($this->connection) ? $this->connection : NULL;
}
@ -412,7 +412,7 @@ class DibiSqliteDriver extends DibiObject implements IDibiDriver, IDibiResultDri
*/
public function getResultResource()
{
return $this->resultSet;
return is_resource($this->resultSet) ? $this->resultSet : NULL;
}

View File

@ -144,7 +144,7 @@ class DibiConnection extends DibiObject
public function __destruct()
{
// disconnects and rolls back transaction - do not rely on auto-disconnect and rollback!
$this->connected && $this->disconnect();
$this->connected && $this->driver->getResource() && $this->disconnect();
}

View File

@ -13,7 +13,9 @@ require_once '../dibi/dibi.php';
dibi::connect(array(
'driver' => 'sqlite',
'database' => 'data/sample.sdb',
'profiler' => TRUE,
'profiler' => array(
'run' => TRUE,
)
));