. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ /** * DBSession class definition * It is useful to stablish a database connection using an specific database * @package gulliver.system * @author Fernando Ontiveros Lira * @copyright (C) 2002 by Colosa Development Team. * */ class DBSession { var $dbc = NULL; var $dbname = ''; var $result = false; /** * Starts a session using a connection with an specific database * @author Fernando Ontiveros Lira * * @access public * @param object $objConnection * @param string $strDBName * @return void * */ function DBSession( $objConnection = NULL, $strDBName = '' ) { if ($strDBName!='') $strDBName = $objConnection->db->_db; $this->setTo( $objConnection, $strDBName ); } /** * It's like a constructor * @author Fernando Ontiveros Lira * * @access public * @param object $objConnection * @param string $strDBName * @return void * */ function setTo( $objConnection = NULL, $strDBName = DB_NAME ) { if ( $objConnection != NULL ) { $this->Free(); $this->dbc = $objConnection; $this->dbname = $strDBName; //enable utf8 in mysql databases if ( $this->dbc->db->phptype == 'mysql' ) { //utf-8 $this->dbc->db->query ( "SET NAMES 'utf8'; " ); } } } /** * UseDB stablish a database for the connection * @author Fernando Ontiveros Lira * * @access public * @param string $strDBName * @return void * */ function UseDB( $strDBName = DB_NAME ) { $this->dbname = $strDBName; } /** * Function Execute, to execute a query and send back the recordset. * @access public * @parameter string strQuery * @parameter string debug * @parameter string error * @return string */ function Execute( $strQuery = '', $debug = false, $errorLevel = null ) { //BUG::traceRoute(); if ($this->dbc == NULL ) { $dberror = PEAR::raiseError(null, DB_ERROR_OBJECT_NOT_DEFINED, null, 'null', 'You have tried to call a DBSession function without create an instance of DBConnection', 'G_Error', true); DBconnection::logError( $dberror, $errorLevel ); return $dberror; }; if ( $errorLevel === null ) $errorLevel = $this->dbc->errorLevel; $this->Free( true ); if( $debug ) { print( $strQuery . "
\n" ); } $this->result = $this->dbc->db->query ( $strQuery ); if (DB::isError ($this->result)) { $this->dbc->logError( $this->result, $errorLevel ); return $this->result; } $dset = new DBRecordSet( $this->result ); return $dset; } /** * Function Query, just to execute the query. * @access public * @parameter string strQuery * @parameter string debug * @parameter string error * @return string */ /* function deprecated... by Onti, 30th july 2007 function Query( $strQuery = '', $debug = false, $error = '' ) { if ( $error == '' && defined('ERROR_STATE') ) { $error = ERROR_STATE; } if ( !defined('ERROR_STATE') ) $error = 4; if( $debug ) { print( $strQuery . "
\n" ); } $this->Free( true ); $this->result = $this->dbc->db->query ( $strQuery ); if (DB::isError ($this->result)) { $this->dbc->ShowLogError( $this->result->getMessage() , $this->result->userinfo, $error); die; } return; } */ /** * Function Free * @access public * @parameter string debug * @return string */ function Free( $debug = false ) { if ( is_resource($this->result) ) $this->result->Free(); return; } }