Skip to content

Commit

Permalink
modified formatting to follow qcodo standards
Browse files Browse the repository at this point in the history
  • Loading branch information
marcosdsanchez authored and mikeho committed Jun 10, 2010
1 parent c0236d3 commit 7cd0d32
Show file tree
Hide file tree
Showing 2 changed files with 721 additions and 712 deletions.
257 changes: 131 additions & 126 deletions includes/qcodo/_core/database/QPdoDatabase.class.php
@@ -1,128 +1,133 @@
<?php
/**
* PDO Generic database driver
* @abstract
* @author Marcos Sánchez [marcosdsanchez at thinkclear dot com dot ar]
*/
abstract class QPdoDatabase extends QDatabaseBase {
const Adapter = 'Generic PDO Adapter (Abstract)';

/**
* @var PDO connection handler
* @access protected
*/
protected $objPdo;
/**
* @var PDOStatement most recent query result
* @access protected
*/
protected $objMostRecentResult;


public function NonQuery($strNonQuery) {
// Connect if Applicable
if (!$this->blnConnectedFlag) $this->Connect();

// Log Query (for Profiling, if applicable)
$this->LogQuery($strNonQuery);

// Perform the Query
$objResult = $this->objPdo->query($strNonQuery);
if ($objResult === false)
throw new QPdoDatabaseException($this->objPdo->errorInfo(), $this->objPdo->errorCode(), $strNonQuery);
$this->objMostRecentResult = $objResult;
}

public function __get($strName) {
switch ($strName) {
case 'AffectedRows':
return $this->objMostRecentResult->rowCount();
default:
try {
return parent::__get($strName);
} catch (QCallerException $objExc) {
$objExc->IncrementOffset();
throw $objExc;
}
}
}

public function Close() {
$this->objPdo = null;
}


public function TransactionBegin() {
$this->objPdo->beginTransaction();
}

public function TransactionCommit() {
$this->objPdo->commit();
}

public function TransactionRollBack() {
$this->objPdo->rollback();
}

}
/**
* QPdoDatabaseResult
*
* @abstract
*/
abstract class QPdoDatabaseResult extends QDatabaseResultBase {
/**
* @var PDOStatement Query result
* @access protected
*/
protected $objPdoResult;
/**
* @var PDO Connection object
* @access protected
*/
protected $objPdo;

public function __construct($objResult, QPdoDatabase $objDb) {
$this->objPdoResult = $objResult;
$this->objPdo = $objDb;
}

public function FetchArray() {
return $this->objPdoResult->fetch();
}

public function FetchRow() {
return $this->objPdoResult->fetch(PDO::FETCH_NUM);
}

public function CountRows() {
return $this->objPdoResult->rowCount();
}

public function CountFields() {
return $this->objPdoResult->columnCount();
}

public function Close() {
$this->objPdoResult = null;
}

public function GetRows() {
$objDbRowArray = array();
while ($objDbRow = $this->GetNextRow())
array_push($objDbRowArray, $objDbRow);
return $objDbRowArray;
}
}
/**
* PdoDatabaseException
*/
class QPdoDatabaseException extends QDatabaseExceptionBase {
public function __construct($strMessage, $intNumber, $strQuery) {
parent::__construct(sprintf("PDO %s", $strMessage[2]), 2);
$this->intErrorNumber = $intNumber;
$this->strQuery = $strQuery;
}
}

/**
* PDO Generic database driver
* @abstract
* @author Marcos Sánchez [marcosdsanchez at thinkclear dot com dot ar]
*/
abstract class QPdoDatabase extends QDatabaseBase {
const Adapter = 'Generic PDO Adapter (Abstract)';

/**
* @var PDO connection handler
* @access protected
*/
protected $objPdo;
/**
* @var PDOStatement most recent query result
* @access protected
*/
protected $objMostRecentResult;


public function NonQuery($strNonQuery) {
// Connect if Applicable
if (!$this->blnConnectedFlag)
$this->Connect();

// Log Query (for Profiling, if applicable)
$this->LogQuery($strNonQuery);

// Perform the Query
$objResult = $this->objPdo->query($strNonQuery);
if ($objResult === false)
throw new QPdoDatabaseException($this->objPdo->errorInfo(), $this->objPdo->errorCode(), $strNonQuery);
$this->objMostRecentResult = $objResult;
}

public function __get($strName) {
switch ($strName) {
case 'AffectedRows':
return $this->objMostRecentResult->rowCount();
default:
try {
return parent::__get($strName);
} catch (QCallerException $objExc) {
$objExc->IncrementOffset();
throw $objExc;
}
}
}

public function Close() {
$this->objPdo = null;
}

public function TransactionBegin() {
$this->objPdo->beginTransaction();
}

public function TransactionCommit() {
$this->objPdo->commit();
}

public function TransactionRollBack() {
$this->objPdo->rollback();
}

}

/**
* QPdoDatabaseResult
*
* @abstract
*/
abstract class QPdoDatabaseResult extends QDatabaseResultBase {

/**
* @var PDOStatement Query result
* @access protected
*/
protected $objPdoResult;
/**
* @var PDO Connection object
* @access protected
*/
protected $objPdo;

public function __construct($objResult, QPdoDatabase $objDb) {
$this->objPdoResult = $objResult;
$this->objPdo = $objDb;
}

public function FetchArray() {
return $this->objPdoResult->fetch();
}

public function FetchRow() {
return $this->objPdoResult->fetch(PDO::FETCH_NUM);
}

public function CountRows() {
return $this->objPdoResult->rowCount();
}

public function CountFields() {
return $this->objPdoResult->columnCount();
}

public function Close() {
$this->objPdoResult = null;
}

public function GetRows() {
$objDbRowArray = array();
while ($objDbRow = $this->GetNextRow())
array_push($objDbRowArray, $objDbRow);
return $objDbRowArray;
}

}

/**
* PdoDatabaseException
*/
class QPdoDatabaseException extends QDatabaseExceptionBase {

public function __construct($strMessage, $intNumber, $strQuery) {
parent::__construct(sprintf("PDO %s", $strMessage[2]), 2);
$this->intErrorNumber = $intNumber;
$this->strQuery = $strQuery;
}

}
?>

0 comments on commit 7cd0d32

Please sign in to comment.