dsn = $dsn;
$this->user = $user;
$this->password = $password;
$this->options = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_CASE => PDO::CASE_LOWER,
PDO::ATTR_STATEMENT_CLASS => array('CDBResult', array($this) ) );
}
public function makeConnection()
{
if( !isset( $this->connection ) )
$this->connection = new PDO( $this->dsn, $this->user, $this->password );
if( !is_a( $this->connection, 'PDO' ) )
throw new CDBError("Failed to make database connection");
$this->setOptions();
}
private function setOptions()
{
foreach( $this->options as $option => $value )
$this->connection->setAttribute( $option, $value);
}
public function runQuery( $query)
{
$this->result =& $this->connection->prepare( $query );
if(!$this->result)
throw new CDBError("Failed to execute query
$query");
if( !$this->result->execute() )
throw new CDBError("Failed to execute query
$query");
if( !PEAR::isError($this->result) )
return true;
}
public function getResult()
{
$result = $this->result->fetchAll();
$this->result_nb = count( $result );
return $result;
}
public function countResult()
{
return $this->result_nb;
}
public function triggerError( $message, $db_error)
{
echo 'Error: ' . $message . '
';
echo 'Standard Message: ' . $db_error->getMessage() . '
';
echo 'Standard Code: ' . $db_error->getCode() . '
';
echo 'DBMS/User Message: ' . $db_error->getUserInfo() . '
';
echo 'DBMS/Debug Message: ' . $db_error->getDebugInfo() . '
';
}
}
?>