Public Member Functions | Protected Member Functions

objSQL Class Reference

Public Member Functions

 __construct ($datasource)
 Constructor.
 close ()
 Close database connection - destroy connection object.
 connection ()
 Return database connection object.
 create_sequence ($sequence, $max=false)
 Create sequence/generator object.
 dbtype ()
 Return database type.
 delete ($table, $where=false, $savepoint=false)
 Return delete query object.
 insert ($table, $array, $savepoint=false)
 Return insert query result object.
 query ($query, $savepoint=false)
 Execute non-prepared query and return resultset object.
 prepare ($query, $savepoint=false)
 Return prepared statement.
 select ($table, $columns=false, $where=false, $order_by=false, $sort_order=false)
 Return select query result object.
 sequence ($sequence)
 Return sequence value/property for named sequence - use with non-prepared insert queries.
 server_version ()
 Return database server version.
 transaction ()
 Begin transaction.
 update ($table, $array, $where=false, $savepoint=false)
 Return update query result object.

Protected Member Functions

 datasource ($datasource)
 Set database connection object, database type and load statement driver.

Detailed Description

Definition at line 15 of file objSQL.php.


Constructor & Destructor Documentation

__construct ( datasource  ) 

Constructor.

public

Parameters:
array $datasource

Definition at line 95 of file objSQL.php.

    {
        if ( !is_array( $datasource ) )
            trigger_error( 'Datasource argument must be an array', E_USER_WARNING );
        else
            $this->datasource( $datasource );
    }


Member Function Documentation

close (  ) 

Close database connection - destroy connection object.

public

Returns:
bool

Definition at line 109 of file objSQL.php.

    {
        $objDbClose = $this->objConnectClass->objDbClose();
        $this->objConnection = false;

        return $objDbClose;
    }

connection (  ) 

Return database connection object.

public

Returns:
mixed

Definition at line 123 of file objSQL.php.

    {
        return $this->objConnection;
    }

create_sequence ( sequence,
max = false 
)

Create sequence/generator object.

public

Parameters:
str $sequence
int $max
Returns:
mixed

Definition at line 136 of file objSQL.php.

    {
        if ( in_array( $this->objDbType, $this->objSeqArray ) )
        {
            require_once 'drivers/' . $this->objDbType . '/' . $this->objDbType . 'Sequence.php';

            $objSequence = $this->objDbType . 'Sequence';
            $seq = new $objSequence( $sequence, $max, $this->objConnection );

            return $seq->setSequence();
        }
    }

datasource ( datasource  )  [protected]

Set database connection object, database type and load statement driver.

protected

Parameters:
array $datasource
Returns:
bool

Definition at line 156 of file objSQL.php.

    {
        $this->objDbType = $this->objDetect( strtolower( $datasource[0] ) );

        if ( $this->objDbType )
        {
            require_once 'drivers/' . $this->objDbType . '/' . $this->objDbType . 'Connection.php';

            $objConnection = $this->objDbType . 'Connection';
            $this->objConnectClass = new $objConnection( $datasource );
            $this->objConnection = $this->objConnectClass->objDbConnection();

            if ( $this->objConnection )
                require_once 'drivers/' . $this->objDbType . '/' . $this->objDbType . 'Statement.php';
        }
    }

dbtype (  ) 

Return database type.

public

Returns:
mixed

Definition at line 179 of file objSQL.php.

    {
        return $this->objDbType;
    }

delete ( table,
where = false,
savepoint = false 
)

Return delete query object.

public

Parameters:
str $table
str $where
mixed $savepoint
Returns:
mixed

Definition at line 193 of file objSQL.php.

    {
        $objWhere = ( !$where ) ? '' : ' WHERE ' . $where;
        $objQuery = 'DELETE FROM ' . $table . $objWhere;
        $objStatement = $this->objDbType . 'Statement';

        $stmt = new $objStatement( $objQuery, $this, $this->objAutoCommit, $savepoint );

        return $stmt->objExecuteNonPrepared();
    }

insert ( table,
array,
savepoint = false 
)

Return insert query result object.

public

Parameters:
str $table
array $array
mixed $savepoint
Returns:
mixed

Definition at line 213 of file objSQL.php.

    {
        //$array MUST be a key value pair array
        $array_keys   = array_keys( $array );
        $array_values = array_values( $array );
        $objColumns   = '';
        $objValues    = '';

        for ( $i = 0; $i < count( $array ); $i++ )
        {
            if ( is_string( $array_values[$i] ) && !substr_count( strtolower( $array_values[$i] ), 'nextval' ) )
                $objValues .= "'" . $array_values[$i] . "',";
            else
                $objValues .= $array_values[$i] . ',';

            $objColumns .= $array_keys[$i] . ',';
        }

        $objValues  = ' VALUES ( ' . rtrim( $objValues, ',' ) . ')';
        $objColumns = ' (' . rtrim( $objColumns, ',' ) . ')';
        $objQuery   = 'INSERT INTO ' . $table . $objColumns . $objValues;
        $objStatement = $this->objDbType . 'Statement';

        $stmt = new $objStatement( $objQuery, $this, $this->objAutoCommit, $savepoint );

        return $stmt->objExecuteNonPrepared();
    }

prepare ( query,
savepoint = false 
)

Return prepared statement.

public

Parameters:
str $query
mixed $savepoint
Returns:
mixed

Definition at line 292 of file objSQL.php.

    {
        $objStatement = $this->objDbType . 'Statement';

        return new $objStatement( $query, $this, $this->objAutoCommit, $savepoint );
    }

query ( query,
savepoint = false 
)

Execute non-prepared query and return resultset object.

public

Parameters:
str $query
mixed $savepoint
Returns:
mixed

Definition at line 276 of file objSQL.php.

    {
        $objStatement = $this->objDbType . 'Statement';
        $stmt = new $objStatement( $query, $this, $this->objAutoCommit, $savepoint );

        return $stmt->objExecuteNonPrepared();
    }

select ( table,
columns = false,
where = false,
order_by = false,
sort_order = false 
)

Return select query result object.

public

Parameters:
str $table
str $columns
str $where
str $order_by
str $sort_order
Returns:
mixed

Definition at line 310 of file objSQL.php.

    {
        $objColumns   = ( !$columns ) ? '*' : $columns;
        $objWhere     = ( !$where ) ? '' : ' WHERE ' . $where;
        $objOrderBy   = ( !$order_by ) ? '' : ' ORDER BY ' . $order_by;
        $objSortOrder = ( !$sort_order || strtolower( $sort_order ) != 'desc' || strtolower( $sort_order ) != 'asc' ) ? '' : ' ' . $sort_order;

        $objQuery = 'SELECT ' . $objColumns . ' FROM ' . $table . $objWhere . $objOrderBy . $objSortOrder;
        $objStatement = $this->objDbType . 'Statement';

        $stmt = new $objStatement( $objQuery, $this, false, false );

        return $stmt->objExecuteNonPrepared();
    }

sequence ( sequence  ) 

Return sequence value/property for named sequence - use with non-prepared insert queries.

public

Parameters:
str $sequence
Returns:
mixed

Definition at line 332 of file objSQL.php.

    {
        if ( in_array( $this->objDbType, $this->objSeqArray ) )
        {
            require_once 'drivers/' . $this->objDbType . '/' . $this->objDbType . 'Sequence.php';

            $objSequence = $this->objDbType . 'Sequence';
            $seq = new $objSequence( $sequence, false, $this->objConnection );

            return $seq->getSequence();
        }
    }

server_version (  ) 

Return database server version.

public

Returns:
str

Definition at line 351 of file objSQL.php.

    {
        return $this->objConnectClass->objServerVersion();
    }

transaction (  ) 

Begin transaction.

public

Returns:
mixed

Definition at line 362 of file objSQL.php.

    {
        require_once 'drivers/' . $this->objDbType . '/' . $this->objDbType . 'Transaction.php';

        $this->objAutoCommit = ( $this->objDbType == 'firebird' ) ? ibase_trans( $this->objConnection ) : false;
        $objTransaction = $this->objDbType . 'Transaction';

        return new $objTransaction( $this->objConnection, $this->objAutoCommit );
    }

update ( table,
array,
where = false,
savepoint = false 
)

Return update query result object.

public

Parameters:
str $table
array $array
str $where
mixed $savepoint
Returns:
mixed

Definition at line 382 of file objSQL.php.

    {
        //$array MUST be a key value pair array
        $objColumns = array_keys( $array );
        $objValues  = array_values( $array );
        $objUpdate  = '';

        for ( $i = 0; $i < count( $array ); $i++ )
        {
            if ( !$objValues[$i] )
            {
                if ( is_numeric( $objValues[$i] ) )
                    $objValues[$i] = 0;
                elseif ( is_bool( $objValues[$i] ) )
                    $objValues[$i] = false;
                else
                    $objValues[$i] = '';
            }

            if ( is_string( $objValues[$i] ) && !is_numeric( $objValues[$i] ) )
                $objUpdate .= $objColumns[$i] . "='" . $objValues[$i] . "',";
            else
                $objUpdate .= $objColumns[$i] . '=' . $objValues[$i] . ',';
        }

        $objUpdate = rtrim( $objUpdate, ',' );
        $objWhere  = ( !$where ) ? '' : ' WHERE ' . $where;
        $objQuery  = 'UPDATE ' . $table . ' SET ' . $objUpdate . $objWhere;

        $objStatement = $this->objDbType . 'Statement';
        $stmt = new $objStatement( $objQuery, $this, $this->objAutoCommit, $savepoint );

        return $stmt->objExecuteNonPrepared();
    }


The documentation for this class was generated from the following file: