2010-12-02 23:34:41 +00:00
< ? php
2012-10-18 10:54:46 -04:00
2010-12-02 23:34:41 +00:00
/**
* class . dbsession . php
2012-10-18 10:54:46 -04:00
*
* @ package gulliver . system
*
2010-12-02 23:34:41 +00:00
* ProcessMaker Open Source Edition
2011-01-24 20:33:07 +00:00
* Copyright ( C ) 2004 - 2011 Colosa Inc .
2012-10-18 10:54:46 -04:00
*
2010-12-02 23:34:41 +00:00
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation , either version 3 of the
* License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
2012-10-18 10:54:46 -04:00
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
2010-12-02 23:34:41 +00:00
* GNU Affero General Public License for more details .
2012-10-18 10:54:46 -04:00
*
2010-12-02 23:34:41 +00:00
* You should have received a copy of the GNU Affero General Public License
2012-10-18 10:54:46 -04:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
*
* For more information , contact Colosa Inc , 2566 Le Jeune Rd . ,
2010-12-02 23:34:41 +00:00
* Coral Gables , FL , 33134 , USA , or email info @ colosa . com .
2012-10-18 10:54:46 -04:00
*
2010-12-02 23:34:41 +00:00
*/
2012-10-18 10:54:46 -04:00
/**
2010-12-02 23:34:41 +00:00
* DBSession class definition
* It is useful to stablish a database connection using an specific database
2012-10-18 10:54:46 -04:00
*
2011-01-14 11:51:34 +00:00
* @ package gulliver . system
2010-12-02 23:34:41 +00:00
* @ author Fernando Ontiveros Lira < fernando @ colosa . com >
* @ copyright ( C ) 2002 by Colosa Development Team .
*
*/
class DBSession
{
2012-10-18 10:54:46 -04:00
var $dbc = null ;
var $dbname = '' ;
var $result = false ;
/**
* Starts a session using a connection with an specific database
*
* @ author Fernando Ontiveros Lira < fernando @ colosa . com >
*
* @ access public
* @ param object $objConnection
* @ param string $strDBName
* @ return void
*
*/
function DBSession ( $objConnection = null , $strDBName = '' )
2010-12-02 23:34:41 +00:00
{
2012-10-18 10:54:46 -04:00
if ( $strDBName != '' ) {
$strDBName = $objConnection -> db -> _db ;
}
$this -> setTo ( $objConnection , $strDBName );
2010-12-02 23:34:41 +00:00
}
2012-10-18 10:54:46 -04:00
/**
* It ' s like a constructor
*
* @ author Fernando Ontiveros Lira < fernando @ colosa . com >
*
* @ access public
* @ param object $objConnection
* @ param string $strDBName
* @ return void
*
*/
2018-05-09 10:16:05 -04:00
function setTo ( $objConnection = null , $strDBName = null )
2012-10-18 10:54:46 -04:00
{
2018-05-09 10:16:05 -04:00
if ( empty ( $strDBName )) {
$strDBName = config ( " connections.workflow.database " );
}
2012-10-18 10:54:46 -04:00
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'; " );
}
}
2010-12-02 23:34:41 +00:00
}
2012-10-18 10:54:46 -04:00
/**
* UseDB stablish a database for the connection
*
* @ author Fernando Ontiveros Lira < fernando @ colosa . com >
*
* @ access public
* @ param string $strDBName
* @ return void
*
*/
2018-05-09 10:16:05 -04:00
function UseDB ( $strDBName = null )
2012-10-18 10:54:46 -04:00
{
2018-05-09 10:16:05 -04:00
if ( empty ( $strDBName )) {
$strDBName = config ( " connections.workflow.database " );
}
2012-10-18 10:54:46 -04:00
$this -> dbname = $strDBName ;
2010-12-02 23:34:41 +00:00
}
2012-10-18 10:54:46 -04:00
/**
* Function Execute , to execute a query and send back the recordset .
*
* @ access public
* @ param eter string strQuery
* @ param eter string debug
* @ param eter 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 . " <br> \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 ;
2010-12-02 23:34:41 +00:00
}
2012-10-18 10:54:46 -04:00
/**
* Function Query , just to execute the query .
*
* @ access public
* @ param eter string strQuery
* @ param eter string debug
* @ param eter string error
* @ return string
*/
/* function deprecated ... by Onti , 30 th july 2007
function Query ( $strQuery = '' , $debug = false , $error = '' )
{
if ( $error == '' && defined ( 'ERROR_STATE' ) ) {
$error = ERROR_STATE ;
}
2010-12-02 23:34:41 +00:00
2012-10-18 10:54:46 -04:00
if ( ! defined ( 'ERROR_STATE' ) ) $error = 4 ;
if ( $debug ) {
print ( $strQuery . " <br> \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 ;
2010-12-02 23:34:41 +00:00
}
2012-10-18 10:54:46 -04:00
*/
/**
* Function Free
*
* @ access public
* @ param eter string debug
* @ return string
*/
function Free ( $debug = false )
{
if ( is_resource ( $this -> result )) {
$this -> result -> Free ();
}
return ;
2010-12-02 23:34:41 +00:00
}
}