| 
<?php /**
 * Index file for Extended PGsql class.
 *
 * @package General
 * @version $Rev: 6 $
 * @copyright $Date: 2011-07-20 23:25:21 -0400 (Wed, 20 Jul 2011) $
 * @author $Author: unreal4u $
 * @license BSD License
 */
 
 // Non-direct access protection
 $proc = TRUE;
 
 // Including our config and class
 include('config.php');
 include('extended_pgsql.class.php');
 
 echo '<pre>';
 $dbLink = new extended_pgsql();
 
 echo 'Short version: '.$dbLink->version(TRUE).'<br />';
 echo 'Long version: '.$dbLink->version().'<br />';
 
 // Beginning a transaction, this one should fail to complete and it should do a rollback!
 $dbLink->begin_transaction();
 $dbLink->query('DROP TABLE IF EXISTS t');
 $dbLink->query('CREATE TABLE t(i serial primary key);');
 $dbLink->query('INSERT INTO t VALUES (?)',1);
 $dbLink->query('INSERT INTO t VALUES (?)',1);
 $dbLink->end_transaction();
 
 // Beginning a second, totally different transaction. This one should be ok.
 $dbLink->begin_transaction();
 $dbLink->query('DROP TABLE IF EXISTS x');
 $dbLink->query('CREATE TABLE x(i serial primary key)');
 // If we want the last insert id, we should use native PostGreSQL function "RETURNING"
 $id = $dbLink->insert_id('INSERT INTO x VALUES (?) RETURNING i',1);
 $dbLink->query('INSERT INTO x VALUES (?)',2);
 $dbLink->end_transaction();
 
 // If machines are still machines, this should return an error (due to the fail on the first transaction)
 $aRes = $dbLink->query('SELECT * FROM t');
 
 // And this should be ok. Note we enabled the cache.
 // NOTE: First time this runs, we generate the cache file.
 //       Next time within DB_CACHE_EXPIRE's time, we should read THAT file instead of doing the actual query.
 $dbLink->cache_query = TRUE;
 $bRes = $dbLink->query('SELECT * FROM x');
 
 // Let's see what is in our first query:
 echo '<br />t is:<br />';
 var_dump($aRes);
 // BOOLEAN FALSE because there was an error in the query ()
 
 // Let's see what we have in our second query:
 echo '<br />x is:<br />';
 var_dump($bRes);
 
 // Do we have any errors from the previous queries?
 echo '<br />Errors:<br />';
 print_r($dbLink->errors);
 
 // The other array, LiveStats which contains a lot of useful debug info
 print_r($dbLink->LiveStats);
 
 // Destroying the object.
 unset($dbLink);
 echo '</pre>';
 
 |