• Main Page
  • Data Structures
  • Files
  • File List

pgsqlTransaction.php

Go to the documentation of this file.
00001 <?php
00002 
00003 /**
00004  * Postgres transaction class
00005  *
00006  * @package objSQL
00007  * @version 2.1.0
00008  * @author MT Jordan <mtjo62@gmail.com>
00009  * @link http://objsql.sourceforge.net
00010  * @copyright 2004-2010 openSource Partners
00011  * @license LGPL
00012  * @revision $Id: pgsqlTransaction.php,v 1.4 2008-01-19 10:30:32-05 mt_jordan Exp $
00013  */
00014 
00015 class pgsqlTransaction
00016 {
00017     /**********************************************
00018      * Internal variables
00019      *********************************************/
00020 
00021     /**
00022      * Database connection object
00023      *
00024      * @access private
00025      * @var    mixed
00026      */
00027     private $objConnection;
00028 
00029     /**********************************************
00030      * Class methods
00031      *********************************************/
00032 
00033     /**
00034      * Constructor
00035      *
00036      * @access public
00037      * @param  mixed $connection
00038      */
00039     public function __construct( $connection )
00040     {
00041         $this->objConnection = $connection;
00042 
00043         //turn off autocommit
00044         pg_query( $this->objConnection, 'BEGIN' )
00045         or trigger_error( pg_last_error( $this->objConnection ), E_USER_WARNING );
00046     }
00047 
00048     /**
00049      * Commit transaction
00050      *
00051      * @access public
00052      * @return bool
00053      */
00054     public function commit()
00055     {
00056         return pg_query( $this->objConnection, 'COMMIT' )
00057         or trigger_error( pg_last_error( $this->objConnection ), E_USER_WARNING );
00058     }
00059 
00060     /**
00061      * Rollback transaction
00062      *
00063      * @access public
00064      * @param  str $savepoint
00065      * @return bool
00066      */
00067     public function rollback( $savepoint=false )
00068     {
00069         if ( !$savepoint )
00070             return pg_query( $this->objConnection, 'ROLLBACK' )
00071             or trigger_error( pg_last_error( $this->objConnection ), E_USER_WARNING );
00072         else
00073             return pg_query( $this->objConnection, 'ROLLBACK TO SAVEPOINT ' . $savepoint )
00074             or trigger_error( pg_last_error( $this->objConnection ), E_USER_WARNING );
00075     }
00076 
00077     /**
00078      * Create rollback savepoint
00079      *
00080      * @access public
00081      * @param  str $savepoint
00082      * @return bool
00083      */
00084     public function savepoint( $savepoint )
00085     {
00086         return pg_query( $this->objConnection, 'SAVEPOINT ' . $savepoint )
00087         or trigger_error( pg_last_error( $this->objConnection ), E_USER_WARNING );
00088     }
00089 }
00090 
00091 ?>

Generated on Sat Jul 10 2010 15:14:39 for objSQL 2.1.0 by  doxygen 1.7.1