<?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>';
|