• Main Page
  • Data Structures
  • Files
  • File List

sqlite3Resultset.php

Go to the documentation of this file.
00001 <?php
00002 
00003 /**
00004  * SQLite3 query resultset 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: sqlite3Resultset.php,v 1.0 2010-06-01 10:28:58-05 mt_jordan Exp $
00013  */
00014 
00015 class sqlite3Resultset
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      * Query record
00031      *
00032      * @access private
00033      * @var array
00034      */
00035     private $objRecord = array();
00036 
00037     /**
00038      * Query resultset object
00039      *
00040      * @access private
00041      * @var mixed
00042      */
00043     private $objResult;
00044 
00045     /**********************************************
00046      * Class methods
00047      *********************************************/
00048 
00049     /**
00050      * Constructor
00051      *
00052      * @access public
00053      * @param  mixed $result
00054      * @param  mixed $connection
00055      */
00056     public function __construct( $result, $connection )
00057     {
00058         $this->objConnection = $connection;
00059         $this->objResult     = $result;
00060     }
00061 
00062     /**
00063      * Return num of affected rows from insert/delete/update query
00064      *
00065      * @access public
00066      * @return int
00067      */
00068     public function affected_rows()
00069     {
00070         if ( $this->objResult )
00071             return $this->objConnection->changes();
00072     }
00073 
00074     /**
00075      * Return resultset as assoc array
00076      *
00077      * @access public
00078      * @return mixed
00079      */
00080     public function fetch_array()
00081     {
00082         if ( $this->objResult )
00083         {
00084             $this->objRecord = $this->objResult->fetchArray( SQLITE3_ASSOC );
00085 
00086             return ( $this->objRecord !== false );
00087         }
00088     }
00089 
00090    /**
00091      * Return resultset as object
00092      *
00093      * @access public
00094      * @return bool
00095      */
00096     public function fetch_object()
00097     {
00098         trigger_error( '<p>SQLite3 does not support FETCH_OBJECT. You must use the SQLite or PDO extension!</p>', E_USER_WARNING );
00099         return false;
00100     }
00101 
00102     /**
00103      * Return resultset as numeric array
00104      *
00105      * @access public
00106      * @return mixed
00107      */
00108     public function fetch_row()
00109     {
00110         if ( $this->objResult )
00111         {
00112             $this->objRecord = $this->objResult->fetchArray( SQLITE3_NUM );
00113 
00114             return ( $this->objRecord !== false );
00115         }
00116     }
00117 
00118     /**
00119      * Return record from select query
00120      *
00121      * @access public
00122      * @param  mixed $field
00123      * @return mixed
00124      */
00125     public function field( $field )
00126     {
00127         if ( $this->objResult )
00128         {
00129             if ( get_magic_quotes_runtime() )
00130                 return stripslashes( $this->objRecord[$field] );
00131             else
00132                 return $this->objRecord[$field];
00133         }
00134     }
00135 
00136     /**
00137      * Free resultset memory - destroy resultset object
00138      *
00139      * @access public
00140      */
00141     public function flush()
00142     {
00143         if ( $this->objResult )
00144         {
00145             unset( $this->objConnection );
00146             $this->objRecord = array();
00147             
00148             return ( $this->objResult->finalize() ) ? true : false;
00149         }
00150     }
00151 
00152     /**
00153      * Return num fields from select query
00154      *
00155      * @access public
00156      * @return int
00157      */
00158     public function num_fields()
00159     {
00160         if ( $this->objResult )
00161             return $this->objResult->numColumns();
00162     }
00163 
00164     /**
00165      * Return num rows from select query - MUST be used with "select count(*)"
00166      *
00167      * @access public
00168      * @return int
00169      */
00170     public function num_rows()
00171     {
00172         if ( $this->objResult )
00173         {
00174             while ( $row = $this->objResult->fetchArray( SQLITE3_NUM ) )
00175                 return $row[0];
00176         }        
00177     }
00178 
00179     /**
00180      * Return resultset object
00181      *
00182      * @access public
00183      * @return mixed
00184      */
00185     public function result()
00186     {
00187         return $this->objResult;
00188     }
00189 }
00190 
00191 ?>

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