Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php // This file is protected by copyright law & provided under license. Copyright(C) 20..

Decoded Output download

 
if (!defined('_ADODB_LAYER')) {
define('_ADODB_LAYER',1);
if (!defined('ADODB_DIR')) define('ADODB_DIR',dirname('index.php'));
GLOBAL 
$ADODB_vers,
$ADODB_COUNTRECS,
$ADODB_CACHE_DIR,
$ADODB_EXTENSION,
$ADODB_COMPAT_FETCH,
$ADODB_FETCH_MODE,
$ADODB_QUOTE_FIELDNAMES;
$ADODB_EXTENSION = defined('ADODB_EXTENSION');
define('ADODB_FORCE_IGNORE',0);
define('ADODB_FORCE_NULL',1);
define('ADODB_FORCE_EMPTY',2);
define('ADODB_FORCE_VALUE',3);
if (!$ADODB_EXTENSION ||ADODB_EXTENSION <4.0) {
define('ADODB_BAD_RS','<p></p>');
define('ADODB_TABLE_REGEX','([]0-9a-z_\:\"\`\.\@\[-]*)');
if (!defined('ADODB_PREFETCH_ROWS')) define('ADODB_PREFETCH_ROWS',10);
define('ADODB_FETCH_DEFAULT',0);
define('ADODB_FETCH_NUM',1);
define('ADODB_FETCH_ASSOC',2);
define('ADODB_FETCH_BOTH',3);
if (!defined('TIMESTAMP_FIRST_YEAR')) define('TIMESTAMP_FIRST_YEAR',100);
$_adodb_ver = (float) PHP_VERSION;
if ($_adodb_ver >= 5.2) {
define('ADODB_PHPVER',0x5200);
}else if ($_adodb_ver >= 5.0) {
define('ADODB_PHPVER',0x5000);
}else if ($_adodb_ver >4.299999) {# 4.3
define('ADODB_PHPVER',0x4300);
}else if ($_adodb_ver >4.199999) {# 4.2
define('ADODB_PHPVER',0x4200);
}else if (strnatcmp(PHP_VERSION,'4.0.5')>=0) {
define('ADODB_PHPVER',0x4050);
}else {
define('ADODB_PHPVER',0x4000);
}
}
function ADODB_str_replace($src,$dest,$data)
{
if (ADODB_PHPVER >= 0x4050) return str_replace($src,$dest,$data);
$s = reset($src);
$d = reset($dest);
while ($s !== false) {
$data = str_replace($s,$d,$data);
$s = next($src);
$d = next($dest);
}
return $data;
}
function ADODB_Setup()
{
GLOBAL 
$ADODB_vers,
$ADODB_COUNTRECS,
$ADODB_CACHE_DIR,
$ADODB_FETCH_MODE,
$ADODB_FORCE_TYPE,
$ADODB_QUOTE_FIELDNAMES;
$ADODB_FETCH_MODE = ADODB_FETCH_DEFAULT;
$ADODB_FORCE_TYPE = ADODB_FORCE_VALUE;
if (!isset($ADODB_CACHE_DIR)) {
$ADODB_CACHE_DIR = '/tmp';
}else {
if (strpos($ADODB_CACHE_DIR,'://') !== false) 
die("Illegal path http:// or ftp://");
}
srand(((double)microtime())*1000000);
$ADODB_vers = 'V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. Released BSD & LGPL.';
if (!isset($ADODB_COUNTRECS)) $ADODB_COUNTRECS = true;
}
ADODB_Setup();
class ADOFieldObject {
var $name = '';
var $max_length=0;
var $type="";
}
function ADODB_TransMonitor($dbms,$fn,$errno,$errmsg,$p1,$p2,&$thisConnection)
{
$thisConnection->_transOK = false;
if ($thisConnection->_oldRaiseFn) {
$fn = $thisConnection->_oldRaiseFn;
$fn($dbms,$fn,$errno,$errmsg,$p1,$p2,$thisConnection);
}
}
class ADOConnection {
var $dataProvider = 'native';
var $databaseType = '';
var $database = '';
var $host = '';
var $user = '';
var $password = '';
var $debug = false;
var $maxblobsize = 262144;
var $concat_operator = '+';
var $substr = 'substr';
var $length = 'length';
var $random = 'rand()';
var $upperCase = 'upper';
var $fmtDate = "'Y-m-d'";
var $fmtTimeStamp = "'Y-m-d, h:i:s A'";
var $true = '1';
var $false = '0';
var $replaceQuote = "\'";
var $nameQuote = '"';
var $charSet=false;
var $metaDatabasesSQL = '';
var $metaTablesSQL = '';
var $uniqueOrderBy = false;
var $emptyDate = '&nbsp;';
var $emptyTimeStamp = '&nbsp;';
var $lastInsID = false;
var $hasInsertID = false;
var $hasAffectedRows = false;
var $hasTop = false;
var $hasLimit = false;
var $readOnly = false;
var $hasMoveFirst = false;
var $hasGenID = false;
var $hasTransactions = true;
var $genID = 0;
var $raiseErrorFn = false;
var $isoDates = false;
var $cacheSecs = 3600;
var $memCache = false;
var $memCacheHost;
var $memCachePort = 11211;
var $memCacheCompress = false;
var $sysDate = false;
var $sysTimeStamp = false;
var $arrayClass = 'ADORecordSet_array';
var $noNullStrings = false;
var $numCacheHits = 0;
var $numCacheMisses = 0;
var $pageExecuteCountRows = true;
var $uniqueSort = false;
var $leftOuter = false;
var $rightOuter = false;
var $ansiOuter = false;
var $autoRollback = false;
var $poorAffectedRows = false;
var $fnExecute = false;
var $fnCacheExecute = false;
var $blobEncodeType = false;
var $rsPrefix = "ADORecordSet_";
var $autoCommit = true;
var $transOff = 0;
var $transCnt = 0;
var $fetchMode=false;
var $null2null = 'null';
var $_oldRaiseFn =  false;
var $_transOK = null;
var $_connectionID	= false;
var $_errorMsg = false;
var $_errorCode = false;
var $_queryID = false;
var $_isPersistentConnection = false;
var $_bindInputArray = false;
var $_evalAll = false;
var $_affected = false;
var $_logsql = false;
var $_transmode = '';
function ADOConnection()			
{
die('Virtual Class -- cannot instantiate');
}
function Version()
{
global $ADODB_vers;
return (float) substr($ADODB_vers,1);
}
function ServerInfo()
{
return array('description'=>'','version'=>'');
}
function IsConnected()
{
return !empty($this->_connectionID);
}
function _findvers($str)
{
if (preg_match('/([0-9]+\.([0-9\.])+)/',$str,$arr)) return $arr[1];
else return '';
}
function outp($msg,$newline=true)
{
global $ADODB_FLUSH,$ADODB_OUTP;
if (defined('ADODB_OUTP')) {
$fn = ADODB_OUTP;
$fn($msg,$newline);
return;
}else if (isset($ADODB_OUTP)) {
$fn = $ADODB_OUTP;
$fn($msg,$newline);
return;
}
if ($newline) $msg .= "<br>
";
if (isset($_SERVER['HTTP_USER_AGENT']) ||!$newline) echo $msg;
else echo strip_tags($msg);
if (!empty($ADODB_FLUSH) &&ob_get_length() !== false) flush();
}
function Time()
{
$rs =&$this->_Execute("select $this->sysTimeStamp");
if ($rs &&!$rs->EOF) return $this->UnixTimeStamp(reset($rs->fields));
return false;
}
function Connect($argHostname = "",$argUsername = "",$argPassword = "",$argDatabaseName = "",$forceNew = false) 
{
if ($argHostname != "") $this->host = $argHostname;
if ($argUsername != "") $this->user = $argUsername;
if ($argPassword != "") $this->password = $argPassword;
if ($argDatabaseName != "") $this->database = $argDatabaseName;
$this->_isPersistentConnection = false;
if ($forceNew) {
if ($rez=$this->_nconnect($this->host,$this->user,$this->password,$this->database)) return true;
}else {
if ($rez=$this->_connect($this->host,$this->user,$this->password,$this->database)) return true;
}
if (isset($rez)) {
$err = $this->ErrorMsg();
if (empty($err)) $err = "Connection error to server '$argHostname' with user '$argUsername'";
$ret = false;
}else {
$err = "Missing extension for ".$this->dataProvider;
$ret = 0;
}
if ($fn = $this->raiseErrorFn) 
$fn($this->databaseType,'CONNECT',$this->ErrorNo(),$err,$this->host,$this->database,$this);
$this->_connectionID = false;
if ($this->debug) ADOConnection::outp( $this->host.': '.$err);
return $ret;
}
function _nconnect($argHostname,$argUsername,$argPassword,$argDatabaseName)
{
return $this->_connect($argHostname,$argUsername,$argPassword,$argDatabaseName);
}
function NConnect($argHostname = "",$argUsername = "",$argPassword = "",$argDatabaseName = "") 
{
return $this->Connect($argHostname,$argUsername,$argPassword,$argDatabaseName,true);
}
function PConnect($argHostname = "",$argUsername = "",$argPassword = "",$argDatabaseName = "")
{
if (defined('ADODB_NEVER_PERSIST')) 
return $this->Connect($argHostname,$argUsername,$argPassword,$argDatabaseName);
if ($argHostname != "") $this->host = $argHostname;
if ($argUsername != "") $this->user = $argUsername;
if ($argPassword != "") $this->password = $argPassword;
if ($argDatabaseName != "") $this->database = $argDatabaseName;
$this->_isPersistentConnection = true;
if ($rez = $this->_pconnect($this->host,$this->user,$this->password,$this->database)) return true;
if (isset($rez)) {
$err = $this->ErrorMsg();
if (empty($err)) $err = "Connection error to server '$argHostname' with user '$argUsername'";
$ret = false;
}else {
$err = "Missing extension for ".$this->dataProvider;
$ret = 0;
}
if ($fn = $this->raiseErrorFn) {
$fn($this->databaseType,'PCONNECT',$this->ErrorNo(),$err,$this->host,$this->database,$this);
}
$this->_connectionID = false;
if ($this->debug) ADOConnection::outp( $this->host.': '.$err);
return $ret;
}
function SQLDate($fmt,$col=false)
{
if (!$col) $col = $this->sysDate;
return $col;
}
function Prepare($sql)
{
return $sql;
}
function PrepareSP($sql,$param=true)
{
return $this->Prepare($sql,$param);
}
function Quote($s)
{
return $this->qstr($s,false);
}
function QMagic($s)
{
return $this->qstr($s,get_magic_quotes_gpc());
}
function q(&$s)
{
#if (!empty($this->qNull)) if ($s == 'null') return $s;
$s = $this->qstr($s,false);
}
function ErrorNative()
{
return $this->ErrorNo();
}
function nextId($seq_name)
{
return $this->GenID($seq_name);
}
function RowLock($table,$where)
{
return false;
}
function CommitLock($table)
{
return $this->CommitTrans();
}
function RollbackLock($table)
{
return $this->RollbackTrans();
}
function SetFetchMode($mode)
{
$old = $this->fetchMode;
$this->fetchMode = $mode;
if ($old === false) {
global $ADODB_FETCH_MODE;
return $ADODB_FETCH_MODE;
}
return $old;
}
function &Query($sql,$inputarr=false)
{
$rs = &$this->Execute($sql,$inputarr);
if (!$rs &&defined('ADODB_PEAR')) return ADODB_PEAR_Error();
return $rs;
}
function &LimitQuery($sql,$offset,$count,$params=false)
{
$rs = &$this->SelectLimit($sql,$count,$offset,$params);
if (!$rs &&defined('ADODB_PEAR')) return ADODB_PEAR_Error();
return $rs;
}
function Disconnect()
{
return $this->Close();
}
function Param($name,$type='C')
{
return '?';
}
function InParameter(&$stmt,&$var,$name,$maxLen=4000,$type=false)
{
return $this->Parameter($stmt,$var,$name,false,$maxLen,$type);
}
function OutParameter(&$stmt,&$var,$name,$maxLen=4000,$type=false)
{
return $this->Parameter($stmt,$var,$name,true,$maxLen,$type);
}
function Parameter(&$stmt,&$var,$name,$isOutput=false,$maxLen=4000,$type=false)
{
return false;
}
function IgnoreErrors($saveErrs=false)
{
if (!$saveErrs) {
$saveErrs = array($this->raiseErrorFn,$this->_transOK);
$this->raiseErrorFn = false;
return $saveErrs;
}else {
$this->raiseErrorFn = $saveErrs[0];
$this->_transOK = $saveErrs[1];
}
}
function StartTrans($errfn = 'ADODB_TransMonitor')
{
if ($this->transOff >0) {
$this->transOff += 1;
return;
}
$this->_oldRaiseFn = $this->raiseErrorFn;
$this->raiseErrorFn = $errfn;
$this->_transOK = true;
if ($this->debug &&$this->transCnt >0) ADOConnection::outp("Bad Transaction: StartTrans called within BeginTrans");
$this->BeginTrans();
$this->transOff = 1;
}
function CompleteTrans($autoComplete = true)
{
if ($this->transOff >1) {
$this->transOff -= 1;
return true;
}
$this->raiseErrorFn = $this->_oldRaiseFn;
$this->transOff = 0;
if ($this->_transOK &&$autoComplete) {
if (!$this->CommitTrans()) {
$this->_transOK = false;
if ($this->debug) ADOConnection::outp("Smart Commit failed");
}else
if ($this->debug) ADOConnection::outp("Smart Commit occurred");
}else {
$this->_transOK = false;
$this->RollbackTrans();
if ($this->debug) ADOCOnnection::outp("Smart Rollback occurred");
}
return $this->_transOK;
}
function FailTrans()
{
if ($this->debug) 
if ($this->transOff == 0) {
ADOConnection::outp("FailTrans outside StartTrans/CompleteTrans");
}else {
ADOConnection::outp("FailTrans was called");
adodb_backtrace();
}
$this->_transOK = false;
}
function HasFailedTrans()
{
if ($this->transOff >0) return $this->_transOK == false;
return false;
}
function &Execute($sql,$inputarr=false) 
{
if ($this->fnExecute) {
$fn = $this->fnExecute;
$ret =&$fn($this,$sql,$inputarr);
if (isset($ret)) return $ret;
}
if ($inputarr) {
if (!is_array($inputarr)) $inputarr = array($inputarr);
$element0 = reset($inputarr);
# is_object check because oci8 descriptors can be passed in
$array_2d = is_array($element0) &&!is_object(reset($element0));
unset($element0);
if (!is_array($sql) &&!$this->_bindInputArray) {
$sqlarr = explode('?',$sql);
if (!$array_2d) $inputarr = array($inputarr);
foreach($inputarr as $arr) {
$sql = '';$i = 0;
while(list(,$v) = each($arr)) {
$sql .= $sqlarr[$i];
$typ = gettype($v);
if ($typ == 'string')
$sql .= $this->qstr($v);
else if ($typ == 'double')
$sql .= str_replace(',','.',$v);
else if ($typ == 'boolean')
$sql .= $v ?$this->true : $this->false;
else if ($typ == 'object') {
if (method_exists($v,'__toString')) $sql .= $this->qstr($v->__toString());
else $sql .= $this->qstr((string) $v);
}else if ($v === null)
$sql .= 'NULL';
else
$sql .= $v;
$i += 1;
}
if (isset($sqlarr[$i])) {
$sql .= $sqlarr[$i];
if ($i+1 != sizeof($sqlarr)) ADOConnection::outp( "Input Array does not match ?: ".htmlspecialchars($sql));
}else if ($i != sizeof($sqlarr))	
ADOConnection::outp( "Input array does not match ?: ".htmlspecialchars($sql));
$ret =&$this->_Execute($sql);
if (!$ret) return $ret;
}
}else {
if ($array_2d) {
if (is_string($sql))
$stmt = $this->Prepare($sql);
else
$stmt = $sql;
foreach($inputarr as $arr) {
$ret =&$this->_Execute($stmt,$arr);
if (!$ret) return $ret;
}
}else {
$ret =&$this->_Execute($sql,$inputarr);
}
}
}else {
$ret =&$this->_Execute($sql,false);
}
return $ret;
}
function &_Execute($sql,$inputarr=false)
{
if ($this->debug) {
global $ADODB_INCLUDED_LIB;
if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
$this->_queryID = _adodb_debug_execute($this,$sql,$inputarr);
}else {
$this->_queryID = @$this->_query($sql,$inputarr);
}
if ($this->_queryID === false) {
if ($this->debug == 99) adodb_backtrace(true,5);
$fn = $this->raiseErrorFn;
if ($fn) {
$fn($this->databaseType,'EXECUTE',$this->ErrorNo(),$this->ErrorMsg(),$sql,$inputarr,$this);
}
$false = false;
return $false;
}
if ($this->_queryID === true) {
$rs = new ADORecordSet_empty();
return $rs;
}
$rsclass = $this->rsPrefix.$this->databaseType;
$rs = new $rsclass($this->_queryID,$this->fetchMode);
$rs->connection = &$this;
$rs->Init();
if (is_array($sql)) $rs->sql = $sql[0];
else $rs->sql = $sql;
if ($rs->_numOfRows <= 0) {
global $ADODB_COUNTRECS;
if ($ADODB_COUNTRECS) {
if (!$rs->EOF) {
$rs = &$this->_rs2rs($rs,-1,-1,!is_array($sql));
$rs->_queryID = $this->_queryID;
}else
$rs->_numOfRows = 0;
}
}
return $rs;
}
function CreateSequence($seqname='adodbseq',$startID=1)
{
if (empty($this->_genSeqSQL)) return false;
return $this->Execute(sprintf($this->_genSeqSQL,$seqname,$startID));
}
function DropSequence($seqname='adodbseq')
{
if (empty($this->_dropSeqSQL)) return false;
return $this->Execute(sprintf($this->_dropSeqSQL,$seqname));
}
function GenID($seqname='adodbseq',$startID=1)
{
if (!$this->hasGenID) {
return 0;
}
$getnext = sprintf($this->_genIDSQL,$seqname);
$holdtransOK = $this->_transOK;
$save_handler = $this->raiseErrorFn;
$this->raiseErrorFn = '';
@($rs = $this->Execute($getnext));
$this->raiseErrorFn = $save_handler;
if (!$rs) {
$this->_transOK = $holdtransOK;
$createseq = $this->Execute(sprintf($this->_genSeqSQL,$seqname,$startID));
$rs = $this->Execute($getnext);
}
if ($rs &&!$rs->EOF) $this->genID = reset($rs->fields);
else $this->genID = 0;
if ($rs) $rs->Close();
return $this->genID;
}
function Insert_ID($table='',$column='')
{
if ($this->_logsql &&$this->lastInsID) return $this->lastInsID;
if ($this->hasInsertID) return $this->_insertid($table,$column);
if ($this->debug) {
ADOConnection::outp( '<p>Insert_ID error</p>');
adodb_backtrace();
}
return false;
}
function PO_Insert_ID($table="",$id="") 
{
if ($this->hasInsertID){
return $this->Insert_ID($table,$id);
}else {
return $this->GetOne("SELECT MAX($id) FROM $table");
}
}
function Affected_Rows()
{
if ($this->hasAffectedRows) {
if ($this->fnExecute === 'adodb_log_sql') {
if ($this->_logsql &&$this->_affected !== false) return $this->_affected;
}
$val = $this->_affectedrows();
return ($val <0) ?false : $val;
}
if ($this->debug) ADOConnection::outp( '<p>Affected_Rows error</p>',false);
return false;
}
function ErrorMsg()
{
if ($this->_errorMsg) return '!! '.strtoupper($this->dataProvider.' '.$this->databaseType).': '.$this->_errorMsg;
else return '';
}
function ErrorNo() 
{
return ($this->_errorMsg) ?-1 : 0;
}
function MetaError($err=false)
{
include_once(ADODB_DIR."/adodb-error.inc.php");
if ($err === false) $err = $this->ErrorNo();
return adodb_error($this->dataProvider,$this->databaseType,$err);
}
function MetaErrorMsg($errno)
{
include_once(ADODB_DIR."/adodb-error.inc.php");
return adodb_errormsg($errno);
}
function MetaPrimaryKeys($table,$owner=false)
{
$p = array();
$objs =&$this->MetaColumns($table);
if ($objs) {
foreach($objs as $v) {
if (!empty($v->primary_key))
$p[] = $v->name;
}
}
if (sizeof($p)) return $p;
if (function_exists('ADODB_VIEW_PRIMARYKEYS'))
return ADODB_VIEW_PRIMARYKEYS($this->databaseType,$this->database,$table,$owner);
return false;
}
function MetaForeignKeys($table,$owner=false,$upper=false)
{
return false;
}
function SelectDB($dbName) 
{return false;}
function &SelectLimit($sql,$nrows=-1,$offset=-1,$inputarr=false,$secs2cache=0)
{
if ($this->hasTop &&$nrows >0) {
$ismssql = (strpos($this->databaseType,'mssql') !== false);
if ($ismssql) $isaccess = false;
else $isaccess = (strpos($this->databaseType,'access') !== false);
if ($offset <= 	0) {
if ($isaccess) {
$sql = preg_replace(
'/(^\s*select\s+(distinctrow|distinct)?)/i',' '.$this->hasTop.' '.((integer)$nrows).' ',$sql);
if ($secs2cache != 0) {
$ret =&$this->CacheExecute($secs2cache,$sql,$inputarr);
}else {
$ret =&$this->Execute($sql,$inputarr);
}
return $ret;
}else if ($ismssql){
$sql = preg_replace(
'/(^\s*select\s+(distinctrow|distinct)?)/i',' '.$this->hasTop.' '.((integer)$nrows).' ',$sql);
}else {
$sql = preg_replace(
'/(^\s*select\s)/i',' '.$this->hasTop.' '.((integer)$nrows).' ',$sql);
}
}else {
$nn = $nrows +$offset;
if ($isaccess ||$ismssql) {
$sql = preg_replace(
'/(^\s*select\s+(distinctrow|distinct)?)/i',' '.$this->hasTop.' '.$nn.' ',$sql);
}else {
$sql = preg_replace(
'/(^\s*select\s)/i',' '.$this->hasTop.' '.$nn.' ',$sql);
}
}
}
global $ADODB_COUNTRECS;
$savec = $ADODB_COUNTRECS;
$ADODB_COUNTRECS = false;
if ($offset>0){
if ($secs2cache != 0) $rs = &$this->CacheExecute($secs2cache,$sql,$inputarr);
else $rs = &$this->Execute($sql,$inputarr);
}else {
if ($secs2cache != 0) $rs = &$this->CacheExecute($secs2cache,$sql,$inputarr);
else $rs = &$this->Execute($sql,$inputarr);
}
$ADODB_COUNTRECS = $savec;
if ($rs &&!$rs->EOF) {
$rs =&$this->_rs2rs($rs,$nrows,$offset);
}
return $rs;
}
function &SerializableRS(&$rs)
{
$rs2 =&$this->_rs2rs($rs);
$ignore = false;
$rs2->connection =&$ignore;
return $rs2;
}
function &_rs2rs(&$rs,$nrows=-1,$offset=-1,$close=true)
{
if (!$rs) {
$false = false;
return $false;
}
$dbtype = $rs->databaseType;
if (!$dbtype) {
$rs = &$rs;
return $rs;
}
if (($dbtype == 'array'||$dbtype == 'csv') &&$nrows == -1 &&$offset == -1) {
$rs->MoveFirst();
$rs = &$rs;
return $rs;
}
$flds = array();
for ($i=0,$max=$rs->FieldCount();$i <$max;$i++) {
$flds[] = $rs->FetchField($i);
}
$arr =&$rs->GetArrayLimit($nrows,$offset);
if ($close) $rs->Close();
$arrayClass = $this->arrayClass;
$rs2 = new $arrayClass();
$rs2->connection = &$this;
$rs2->sql = $rs->sql;
$rs2->dataProvider = $this->dataProvider;
$rs2->InitArrayFields($arr,$flds);
$rs2->fetchMode = isset($rs->adodbFetchMode) ?$rs->adodbFetchMode : $rs->fetchMode;
return $rs2;
}
function &GetAll($sql,$inputarr=false)
{
$arr =&$this->GetArray($sql,$inputarr);
return $arr;
}
function &GetAssoc($sql,$inputarr=false,$force_array = false,$first2cols = false)
{
$rs =&$this->Execute($sql,$inputarr);
if (!$rs) {
$false = false;
return $false;
}
$arr =&$rs->GetAssoc($force_array,$first2cols);
return $arr;
}
function &CacheGetAssoc($secs2cache,$sql=false,$inputarr=false,$force_array = false,$first2cols = false)
{
if (!is_numeric($secs2cache)) {
$first2cols = $force_array;
$force_array = $inputarr;
}
$rs =&$this->CacheExecute($secs2cache,$sql,$inputarr);
if (!$rs) {
$false = false;
return $false;
}
$arr =&$rs->GetAssoc($force_array,$first2cols);
return $arr;
}
function GetOne($sql,$inputarr=false)
{
global $ADODB_COUNTRECS;
$crecs = $ADODB_COUNTRECS;
$ADODB_COUNTRECS = false;
$ret = false;
$rs = &$this->Execute($sql,$inputarr);
if ($rs) {
if (!$rs->EOF) $ret = reset($rs->fields);
$rs->Close();
}
$ADODB_COUNTRECS = $crecs;
return $ret;
}
function CacheGetOne($secs2cache,$sql=false,$inputarr=false)
{
$ret = false;
$rs = &$this->CacheExecute($secs2cache,$sql,$inputarr);
if ($rs) {
if (!$rs->EOF) $ret = reset($rs->fields);
$rs->Close();
}
return $ret;
}
function GetCol($sql,$inputarr = false,$trim = false)
{
$rv = false;
$rs = &$this->Execute($sql,$inputarr);
if ($rs) {
$rv = array();
if ($trim) {
while (!$rs->EOF) {
$rv[] = trim(reset($rs->fields));
$rs->MoveNext();
}
}else {
while (!$rs->EOF) {
$rv[] = reset($rs->fields);
$rs->MoveNext();
}
}
$rs->Close();
}
return $rv;
}
function CacheGetCol($secs,$sql = false,$inputarr = false,$trim=false)
{
$rv = false;
$rs = &$this->CacheExecute($secs,$sql,$inputarr);
if ($rs) {
if ($trim) {
while (!$rs->EOF) {
$rv[] = trim(reset($rs->fields));
$rs->MoveNext();
}
}else {
while (!$rs->EOF) {
$rv[] = reset($rs->fields);
$rs->MoveNext();
}
}
$rs->Close();
}
return $rv;
}
function &Transpose(&$rs,$addfieldnames=true)
{
$rs2 =&$this->_rs2rs($rs);
$false = false;
if (!$rs2) return $false;
$rs2->_transpose($addfieldnames);
return $rs2;
}
function OffsetDate($dayFraction,$date=false)
{
if (!$date) $date = $this->sysDate;
return  '('.$date.'+'.$dayFraction.')';
}
function &GetArray($sql,$inputarr=false)
{
global $ADODB_COUNTRECS;
$savec = $ADODB_COUNTRECS;
$ADODB_COUNTRECS = false;
$rs =&$this->Execute($sql,$inputarr);
$ADODB_COUNTRECS = $savec;
if (!$rs) 
if (defined('ADODB_PEAR')) {
$cls = ADODB_PEAR_Error();
return $cls;
}else {
$false = false;
return $false;
}
$arr =&$rs->GetArray();
$rs->Close();
return $arr;
}
function &CacheGetAll($secs2cache,$sql=false,$inputarr=false)
{
$arr =&$this->CacheGetArray($secs2cache,$sql,$inputarr);
return $arr;
}
function &CacheGetArray($secs2cache,$sql=false,$inputarr=false)
{
global $ADODB_COUNTRECS;
$savec = $ADODB_COUNTRECS;
$ADODB_COUNTRECS = false;
$rs =&$this->CacheExecute($secs2cache,$sql,$inputarr);
$ADODB_COUNTRECS = $savec;
if (!$rs) 
if (defined('ADODB_PEAR')) {
$cls = ADODB_PEAR_Error();
return $cls;
}else {
$false = false;
return $false;
}
$arr =&$rs->GetArray();
$rs->Close();
return $arr;
}
function &GetRow($sql,$inputarr=false)
{
global $ADODB_COUNTRECS;
$crecs = $ADODB_COUNTRECS;
$ADODB_COUNTRECS = false;
$rs =&$this->Execute($sql,$inputarr);
$ADODB_COUNTRECS = $crecs;
if ($rs) {
if (!$rs->EOF) $arr = $rs->fields;
else $arr = array();
$rs->Close();
return $arr;
}
$false = false;
return $false;
}
function &CacheGetRow($secs2cache,$sql=false,$inputarr=false)
{
$rs =&$this->CacheExecute($secs2cache,$sql,$inputarr);
if ($rs) {
$arr = false;
if (!$rs->EOF) $arr = $rs->fields;
$rs->Close();
return $arr;
}
$false = false;
return $false;
}
function Replace($table,$fieldArray,$keyCol,$autoQuote=false,$has_autoinc=false)
{
global $ADODB_INCLUDED_LIB;
if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
return _adodb_replace($this,$table,$fieldArray,$keyCol,$autoQuote,$has_autoinc);
}
function &CacheSelectLimit($secs2cache,$sql,$nrows=-1,$offset=-1,$inputarr=false)
{
if (!is_numeric($secs2cache)) {
if ($sql === false) $sql = -1;
if ($offset == -1) $offset = false;
$rs =&$this->SelectLimit($secs2cache,$sql,$nrows,$offset,$this->cacheSecs);
}else {
if ($sql === false) ADOConnection::outp( "Warning: \$sql missing from CacheSelectLimit()");
$rs =&$this->SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache);
}
return $rs;
}
function CacheFlush($sql=false,$inputarr=false)
{
global $ADODB_CACHE_DIR;
if ($this->memCache) {
global $ADODB_INCLUDED_MEMCACHE;
$key = false;
if (empty($ADODB_INCLUDED_MEMCACHE)) include(ADODB_DIR.'/adodb-memcache.lib.inc.php');
if ($sql) $key = $this->_gencachename($sql.serialize($inputarr),false,true);
FlushMemCache($key,$this->memCacheHost,$this->memCachePort,$this->debug);
return;
}
if (strlen($ADODB_CACHE_DIR) >1 &&!$sql) {
$dir = $ADODB_CACHE_DIR;
if ($this->debug) {
ADOConnection::outp( "CacheFlush: $dir<br><pre>
".$this->_dirFlush($dir)."</pre>");
}else {
$this->_dirFlush($dir);
}
return;
}
global $ADODB_INCLUDED_CSV;
if (empty($ADODB_INCLUDED_CSV)) include(ADODB_DIR.'/adodb-csvlib.inc.php');
$f = $this->_gencachename($sql.serialize($inputarr),false);
adodb_write_file($f,'');
if (!@unlink($f)) {
if ($this->debug) ADOConnection::outp( "CacheFlush: failed for $f");
}
}
function _dirFlush($dir,$kill_top_level = false) 
{
if(!$dh = @opendir($dir)) return;
while (($obj = readdir($dh))) {
if($obj=='.'||$obj=='..') continue;
$f = $dir.'/'.$obj;
if (strpos($obj,'.cache')) @unlink($f);
if (is_dir($f)) $this->_dirFlush($f,true);
}
if ($kill_top_level === true) @rmdir($dir);
return true;
}
function xCacheFlush($sql=false,$inputarr=false)
{
global $ADODB_CACHE_DIR;
if ($this->memCache) {
global $ADODB_INCLUDED_MEMCACHE;
$key = false;
if (empty($ADODB_INCLUDED_MEMCACHE)) include(ADODB_DIR.'/adodb-memcache.lib.inc.php');
if ($sql) $key = $this->_gencachename($sql.serialize($inputarr),false,true);
flushmemCache($key,$this->memCacheHost,$this->memCachePort,$this->debug);
return;
}
if (strlen($ADODB_CACHE_DIR) >1 &&!$sql) {
if (strncmp(PHP_OS,'WIN',3) === 0) {
$cmd = 'del /s '.str_replace('/','\',$ADODB_CACHE_DIR).'dodb_*.cache';
}else {
$cmd = 'rm -rf '.$ADODB_CACHE_DIR.'/[0-9a-f][0-9a-f]/';
}
if ($this->debug) {
ADOConnection::outp( "CacheFlush: $cmd<br><pre>
",system($cmd),"</pre>");
}else {
exec($cmd);
}
return;
}
global $ADODB_INCLUDED_CSV;
if (empty($ADODB_INCLUDED_CSV)) include(ADODB_DIR.'/adodb-csvlib.inc.php');
$f = $this->_gencachename($sql.serialize($inputarr),false);
adodb_write_file($f,'');
if (!@unlink($f)) {
if ($this->debug) ADOConnection::outp( "CacheFlush: failed for $f");
}
}
function _gencachename($sql,$createdir,$memcache=false)
{
global $ADODB_CACHE_DIR;
static $notSafeMode;
if ($this->fetchMode === false) {
global $ADODB_FETCH_MODE;
$mode = $ADODB_FETCH_MODE;
}else {
$mode = $this->fetchMode;
}
$m = md5($sql.$this->databaseType.$this->database.$this->user.$mode);
if ($memcache) return $m;
if (!isset($notSafeMode)) $notSafeMode = !ini_get('safe_mode');
$dir = ($notSafeMode) ?$ADODB_CACHE_DIR.'/'.substr($m,0,2) : $ADODB_CACHE_DIR;
if ($createdir &&$notSafeMode &&!file_exists($dir)) {
$oldu = umask(0);
if (!mkdir($dir,0771)) 
if ($this->debug) ADOConnection::outp( "Unable to mkdir $dir for $sql");
umask($oldu);
}
return $dir.'/adodb_'.$m.'.cache';
}
function &CacheExecute($secs2cache,$sql=false,$inputarr=false)
{
if (!is_numeric($secs2cache)) {
$inputarr = $sql;
$sql = $secs2cache;
$secs2cache = $this->cacheSecs;
}
if (is_array($sql)) {
$sqlparam = $sql;
$sql = $sql[0];
}else
$sqlparam = $sql;
if ($this->memCache) {
global $ADODB_INCLUDED_MEMCACHE;
if (empty($ADODB_INCLUDED_MEMCACHE)) include(ADODB_DIR.'/adodb-memcache.lib.inc.php');
$md5file = $this->_gencachename($sql.serialize($inputarr),false,true);
}else {
global $ADODB_INCLUDED_CSV;
if (empty($ADODB_INCLUDED_CSV)) include(ADODB_DIR.'/adodb-csvlib.inc.php');
$md5file = $this->_gencachename($sql.serialize($inputarr),true);
}
$err = '';
if ($secs2cache >0){
if ($this->memCache)
$rs = &getmemCache($md5file,$err,$secs2cache,$this->memCacheHost,$this->memCachePort);
else
$rs = &csv2rs($md5file,$err,$secs2cache,$this->arrayClass);
$this->numCacheHits += 1;
}else {
$err='Timeout 1';
$rs = false;
$this->numCacheMisses += 1;
}
if (!$rs) {
if ($this->debug) {
if (get_magic_quotes_runtime() &&!$this->memCache) {
ADOConnection::outp("Please disable magic_quotes_runtime - it corrupts cache files :(");
}
if ($this->debug !== -1) ADOConnection::outp( " $md5file cache failure: $err (see sql below)");
}
$rs = &$this->Execute($sqlparam,$inputarr);
if ($rs &&$this->memCache) {
$rs = &$this->_rs2rs($rs);
if(!putmemCache($md5file,$rs,$this->memCacheHost,$this->memCachePort,$this->memCacheCompress,$this->debug)) {
if ($fn = $this->raiseErrorFn)
$fn($this->databaseType,'CacheExecute',-32000,"Cache write error",$md5file,$sql,$this);
if ($this->debug) ADOConnection::outp( " Cache write error");
}
}else
if ($rs) {
$eof = $rs->EOF;
$rs = &$this->_rs2rs($rs);
$txt = _rs2serialize($rs,false,$sql);
if (!adodb_write_file($md5file,$txt,$this->debug)) {
if ($fn = $this->raiseErrorFn) {
$fn($this->databaseType,'CacheExecute',-32000,"Cache write error",$md5file,$sql,$this);
}
if ($this->debug) ADOConnection::outp( " Cache write error");
}
if ($rs->EOF &&!$eof) {
$rs->MoveFirst();
$rs->connection = &$this;
}
}else
if (!$this->memCache)
@unlink($md5file);
}else {
$this->_errorMsg = '';
$this->_errorCode = 0;
if ($this->fnCacheExecute) {
$fn = $this->fnCacheExecute;
$fn($this,$secs2cache,$sql,$inputarr);
}
$rs->connection = &$this;
if ($this->debug){
$inBrowser = isset($_SERVER['HTTP_USER_AGENT']);
$ttl = $rs->timeCreated +$secs2cache -time();
$s = is_array($sql) ?$sql[0] : $sql;
if ($inBrowser) $s = '<i>'.htmlspecialchars($s).'</i>';
ADOConnection::outp( " $md5file reloaded, ttl=$ttl [ $s ]");
}
}
return $rs;
}
function&AutoExecute($table,$fields_values,$mode = 'INSERT',$where = FALSE,$forceUpdate=true,$magicq=false) 
{
$false = false;
$sql = 'SELECT * FROM '.$table;
if ($where!==FALSE) $sql .= ' WHERE '.$where;
else if ($mode == 'UPDATE'||$mode == 2 ) {
ADOConnection::outp('AutoExecute: Illegal mode=UPDATE with empty WHERE clause');
return $false;
}
$rs =&$this->SelectLimit($sql,1);
if (!$rs) return $false;
$rs->tableName = $table;
switch((string) $mode) {
case 'UPDATE':
case '2':
$sql = $this->GetUpdateSQL($rs,$fields_values,$forceUpdate,$magicq);
break;
case 'INSERT':
case '1':
$sql = $this->GetInsertSQL($rs,$fields_values,$magicq);
break;
default:
ADOConnection::outp("AutoExecute: Unknown mode=$mode");
return $false;
}
$ret = false;
if ($sql) $ret = $this->Execute($sql);
if ($ret) $ret = true;
return $ret;
}
function GetUpdateSQL(&$rs,$arrFields,$forceUpdate=false,$magicq=false,$force=null)
{
global $ADODB_INCLUDED_LIB;
if (!isset($force)) {
global $ADODB_FORCE_TYPE;
$force = $ADODB_FORCE_TYPE;
}
if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
return _adodb_getupdatesql($this,$rs,$arrFields,$forceUpdate,$magicq,$force);
}
function GetInsertSQL(&$rs,$arrFields,$magicq=false,$force=null)
{
global $ADODB_INCLUDED_LIB;
if (!isset($force)) {
global $ADODB_FORCE_TYPE;
$force = $ADODB_FORCE_TYPE;
}
if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
return _adodb_getinsertsql($this,$rs,$arrFields,$magicq,$force);
}
function UpdateBlob($table,$column,$val,$where,$blobtype='BLOB')
{
return $this->Execute("UPDATE $table SET $column=? WHERE $where",array($val)) != false;
}
function UpdateBlobFile($table,$column,$path,$where,$blobtype='BLOB')
{
$fd = fopen($path,'rb');
if ($fd === false) return false;
$val = fread($fd,filesize($path));
fclose($fd);
return $this->UpdateBlob($table,$column,$val,$where,$blobtype);
}
function BlobDecode($blob)
{
return $blob;
}
function BlobEncode($blob)
{
return $blob;
}
function SetCharSet($charset)
{
return false;
}
function IfNull( $field,$ifNull ) 
{
return " CASE WHEN $field is null THEN $ifNull ELSE $field END ";
}
function LogSQL($enable=true)
{
include_once(ADODB_DIR.'/adodb-perf.inc.php');
if ($enable) $this->fnExecute = 'adodb_log_sql';
else $this->fnExecute = false;
$old = $this->_logsql;
$this->_logsql = $enable;
if ($enable &&!$old) $this->_affected = false;
return $old;
}
function GetCharSet()
{
return false;
}
function UpdateClob($table,$column,$val,$where)
{
return $this->UpdateBlob($table,$column,$val,$where,'CLOB');
}
function MetaType($t,$len=-1,$fieldobj=false)
{
if (empty($this->_metars)) {
$rsclass = $this->rsPrefix.$this->databaseType;
$this->_metars = new $rsclass(false,$this->fetchMode);
$this->_metars->connection =&$this;
}
return $this->_metars->MetaType($t,$len,$fieldobj);
}
function SetDateLocale($locale = 'En')
{
$this->locale = $locale;
switch (strtoupper($locale))
{
case 'EN':
$this->fmtDate="'Y-m-d'";
$this->fmtTimeStamp = "'Y-m-d H:i:s'";
break;
case 'US':
$this->fmtDate = "'m-d-Y'";
$this->fmtTimeStamp = "'m-d-Y H:i:s'";
break;
case 'PT_BR': 	
case 'NL':
case 'FR':
case 'RO':
case 'IT':
$this->fmtDate="'d-m-Y'";
$this->fmtTimeStamp = "'d-m-Y H:i:s'";
break;
case 'GE':
$this->fmtDate="'d.m.Y'";
$this->fmtTimeStamp = "'d.m.Y H:i:s'";
break;
default:
$this->fmtDate="'Y-m-d'";
$this->fmtTimeStamp = "'Y-m-d H:i:s'";
break;
}
}
function &GetActiveRecordsClass($class,$table,$whereOrderBy=false,$bindarr=false,$primkeyArr=false)
{
global $_ADODB_ACTIVE_DBS;
$save = $this->SetFetchMode(ADODB_FETCH_NUM);
if (empty($whereOrderBy)) $whereOrderBy = '1=1';
$rows = $this->GetAll("select * from ".$table.' WHERE '.$whereOrderBy,$bindarr);
$this->SetFetchMode($save);
$false = false;
if ($rows === false) {
return $false;
}
if (!isset($_ADODB_ACTIVE_DBS)) {
include(ADODB_DIR.'/adodb-active-record.inc.php');
}
if (!class_exists($class)) {
ADOConnection::outp("Unknown class $class in GetActiveRcordsClass()");
return $false;
}
$arr = array();
foreach($rows as $row) {
$obj = new $class($table,$primkeyArr,$this);
if ($obj->ErrorMsg()){
$this->_errorMsg = $obj->ErrorMsg();
return $false;
}
$obj->Set($row);
$arr[] = $obj;
}
return $arr;
}
function &GetActiveRecords($table,$where=false,$bindarr=false,$primkeyArr=false)
{
$arr =&$this->GetActiveRecordsClass('ADODB_Active_Record',$table,$where,$bindarr,$primkeyArr);
return $arr;
}
function Close()
{
$rez = $this->_close();
$this->_connectionID = false;
return $rez;
}
function BeginTrans() 
{
if ($this->debug) ADOConnection::outp("BeginTrans: Transactions not supported for this driver");
return false;
}
function SetTransactionMode( $transaction_mode ) 
{
$transaction_mode = $this->MetaTransaction($transaction_mode,$this->dataProvider);
$this->_transmode  = $transaction_mode;
}
function MetaTransaction($mode,$db)
{
$mode = strtoupper($mode);
$mode = str_replace('ISOLATION LEVEL ','',$mode);
switch($mode) {
case 'READ UNCOMMITTED':
switch($db) {
case 'oci8':
case 'oracle':
return 'ISOLATION LEVEL READ COMMITTED';
default:
return 'ISOLATION LEVEL READ UNCOMMITTED';
}
break;
case 'READ COMMITTED':
return 'ISOLATION LEVEL READ COMMITTED';
break;
case 'REPEATABLE READ':
switch($db) {
case 'oci8':
case 'oracle':
return 'ISOLATION LEVEL SERIALIZABLE';
default:
return 'ISOLATION LEVEL REPEATABLE READ';
}
break;
case 'SERIALIZABLE':
return 'ISOLATION LEVEL SERIALIZABLE';
break;
default:
return $mode;
}
}
function CommitTrans($ok=true) 
{return true;}
function RollbackTrans() 
{return false;}
function MetaDatabases() 
{
global $ADODB_FETCH_MODE;
if ($this->metaDatabasesSQL) {
$save = $ADODB_FETCH_MODE;
$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);
$arr = $this->GetCol($this->metaDatabasesSQL);
if (isset($savem)) $this->SetFetchMode($savem);
$ADODB_FETCH_MODE = $save;
return $arr;
}
return false;
}
function &MetaTables($ttype=false,$showSchema=false,$mask=false) 
{
global $ADODB_FETCH_MODE;
$false = false;
if ($mask) {
return $false;
}
if ($this->metaTablesSQL) {
$save = $ADODB_FETCH_MODE;
$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);
$rs = $this->Execute($this->metaTablesSQL);
if (isset($savem)) $this->SetFetchMode($savem);
$ADODB_FETCH_MODE = $save;
if ($rs === false) return $false;
$arr =&$rs->GetArray();
$arr2 = array();
if ($hast = ($ttype &&isset($arr[0][1]))) {
$showt = strncmp($ttype,'T',1);
}
for ($i=0;$i <sizeof($arr);$i++) {
if ($hast) {
if ($showt == 0) {
if (strncmp($arr[$i][1],'T',1) == 0) $arr2[] = trim($arr[$i][0]);
}else {
if (strncmp($arr[$i][1],'V',1) == 0) $arr2[] = trim($arr[$i][0]);
}
}else
$arr2[] = trim($arr[$i][0]);
}
$rs->Close();
return $arr2;
}
return $false;
}
function _findschema(&$table,&$schema)
{
if (!$schema &&($at = strpos($table,'.')) !== false) {
$schema = substr($table,0,$at);
$table = substr($table,$at+1);
}
}
function &MetaColumns($table,$normalize=true) 
{
global $ADODB_FETCH_MODE;
$false = false;
if (!empty($this->metaColumnsSQL)) {
$schema = false;
$this->_findschema($table,$schema);
$save = $ADODB_FETCH_MODE;
$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);
$rs = $this->Execute(sprintf($this->metaColumnsSQL,($normalize)?strtoupper($table):$table));
if (isset($savem)) $this->SetFetchMode($savem);
$ADODB_FETCH_MODE = $save;
if ($rs === false ||$rs->EOF) return $false;
$retarr = array();
while (!$rs->EOF) {
$fld = new ADOFieldObject();
$fld->name = $rs->fields[0];
$fld->type = $rs->fields[1];
if (isset($rs->fields[3]) &&$rs->fields[3]) {
if ($rs->fields[3]>0) $fld->max_length = $rs->fields[3];
$fld->scale = $rs->fields[4];
if ($fld->scale>0) $fld->max_length += 1;
}else
$fld->max_length = $rs->fields[2];
if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;
else $retarr[strtoupper($fld->name)] = $fld;
$rs->MoveNext();
}
$rs->Close();
return $retarr;
}
return $false;
}
function &MetaIndexes($table,$primary = false,$owner = false)
{
$false = false;
return $false;
}
function &MetaColumnNames($table,$numIndexes=false,$useattnum=false ) 
{
$objarr =&$this->MetaColumns($table);
if (!is_array($objarr)) {
$false = false;
return $false;
}
$arr = array();
if ($numIndexes) {
$i = 0;
if ($useattnum) {
foreach($objarr as $v) 
$arr[$v->attnum] = $v->name;
}else
foreach($objarr as $v) $arr[$i++] = $v->name;
}else
foreach($objarr as $v) $arr[strtoupper($v->name)] = $v->name;
return $arr;
}
function Concat()
{
$arr = func_get_args();
return implode($this->concat_operator,$arr);
}
function DBDate($d)
{
if (empty($d) &&$d !== 0) return 'null';
if (is_string($d) &&!is_numeric($d)) {
if ($d === 'null'||strncmp($d,"'",1) === 0) return $d;
if ($this->isoDates) return "'$d'";
$d = ADOConnection::UnixDate($d);
}
return adodb_date($this->fmtDate,$d);
}
function BindDate($d)
{
$d = $this->DBDate($d);
if (strncmp($d,"'",1)) return $d;
return substr($d,1,strlen($d)-2);
}
function BindTimeStamp($d)
{
$d = $this->DBTimeStamp($d);
if (strncmp($d,"'",1)) return $d;
return substr($d,1,strlen($d)-2);
}
function DBTimeStamp($ts)
{
if (empty($ts) &&$ts !== 0) return 'null';
# strlen(14) allows YYYYMMDDHHMMSS format
if (!is_string($ts) ||(is_numeric($ts) &&strlen($ts)<14)) 
return adodb_date($this->fmtTimeStamp,$ts);
if ($ts === 'null') return $ts;
if ($this->isoDates &&strlen($ts) !== 14) return "'$ts'";
$ts = ADOConnection::UnixTimeStamp($ts);
return adodb_date($this->fmtTimeStamp,$ts);
}
function UnixDate($v)
{
if (is_object($v)) {
return adodb_mktime($v->hour,$v->minute,$v->second,$v->month,$v->day,$v->year);
}
if (is_numeric($v) &&strlen($v) !== 8) return $v;
if (!preg_match( "|^([0-9]{4})[-/\.]?([0-9]{1,2})[-/\.]?([0-9]{1,2})|",
($v),$rr)) return false;
if ($rr[1] <= TIMESTAMP_FIRST_YEAR) return 0;
return @adodb_mktime(0,0,0,$rr[2],$rr[3],$rr[1]);
}
function UnixTimeStamp($v)
{
if (is_object($v)) {
return adodb_mktime($v->hour,$v->minute,$v->second,$v->month,$v->day,$v->year);
}
if (!preg_match( 
"|^([0-9]{4})[-/\.]?([0-9]{1,2})[-/\.]?([0-9]{1,2})[ ,-]*(([0-9]{1,2}):?([0-9]{1,2}):?([0-9\.]{1,4}))?|",
($v),$rr)) return false;
if ($rr[1] <= TIMESTAMP_FIRST_YEAR &&$rr[2]<= 1) return 0;
if (!isset($rr[5])) return  adodb_mktime(0,0,0,$rr[2],$rr[3],$rr[1]);
return  @adodb_mktime($rr[5],$rr[6],$rr[7],$rr[2],$rr[3],$rr[1]);
}
function UserDate($v,$fmt='Y-m-d',$gmt=false)
{
$tt = $this->UnixDate($v);
if (($tt === false ||$tt == -1) &&$v != false) return $v;
else if ($tt == 0) return $this->emptyDate;
else if ($tt == -1) {
}
return ($gmt) ?adodb_gmdate($fmt,$tt) : adodb_date($fmt,$tt);
}
function UserTimeStamp($v,$fmt='Y-m-d H:i:s',$gmt=false)
{
if (!isset($v)) return $this->emptyTimeStamp;
# strlen(14) allows YYYYMMDDHHMMSS format
if (is_numeric($v) &&strlen($v)<14) return ($gmt) ?adodb_gmdate($fmt,$v) : adodb_date($fmt,$v);
$tt = $this->UnixTimeStamp($v);
if (($tt === false ||$tt == -1) &&$v != false) return $v;
if ($tt == 0) return $this->emptyTimeStamp;
return ($gmt) ?adodb_gmdate($fmt,$tt) : adodb_date($fmt,$tt);
}
function escape($s,$magic_quotes=false)
{
return $this->addq($s,$magic_quotes);
}
function addq($s,$magic_quotes=false)
{
if (!$magic_quotes) {
if ($this->replaceQuote[0] == '\'){
$s = adodb_str_replace(array('\',""),array('\',"\"),$s);
}
return  str_replace("'",$this->replaceQuote,$s);
}
$s = str_replace('\"','"',$s);
if ($this->replaceQuote == "\'")  
return $s;
else {
$s = str_replace('\','\',$s);
return str_replace("\'",$this->replaceQuote,$s);
}
}
function qstr($s,$magic_quotes=false)
{
if (!$magic_quotes) {
if ($this->replaceQuote[0] == '\'){
$s = adodb_str_replace(array('\',""),array('\',"\"),$s);
}
return  "'".str_replace("'",$this->replaceQuote,$s)."'";
}
$s = str_replace('\"','"',$s);
if ($this->replaceQuote == "\'")  
return "'$s'";
else {
$s = str_replace('\','\',$s);
return "'".str_replace("\'",$this->replaceQuote,$s)."'";
}
}
function &PageExecute($sql,$nrows,$page,$inputarr=false,$secs2cache=0) 
{
global $ADODB_INCLUDED_LIB;
if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
if ($this->pageExecuteCountRows) $rs =&_adodb_pageexecute_all_rows($this,$sql,$nrows,$page,$inputarr,$secs2cache);
else $rs =&_adodb_pageexecute_no_last_page($this,$sql,$nrows,$page,$inputarr,$secs2cache);
return $rs;
}
function &CachePageExecute($secs2cache,$sql,$nrows,$page,$inputarr=false) 
{
$rs =&$this->PageExecute($sql,$nrows,$page,$inputarr,$secs2cache);
return $rs;
}
}
class ADOFetchObj {
};
class ADORecordSet_empty
{
var $dataProvider = 'empty';
var $databaseType = false;
var $EOF = true;
var $_numOfRows = 0;
var $fields = false;
var $connection = false;
function RowCount() {return 0;}
function RecordCount() {return 0;}
function PO_RecordCount(){return 0;}
function Close(){return true;}
function FetchRow() {return false;}
function FieldCount(){return 0;}
function Init() {}
}
if (!defined('ADODB_DATE_VERSION')) include(ADODB_DIR.'/adodb-time.inc.php');
if (PHP_VERSION <5) include_once(ADODB_DIR.'/adodb-php4.inc.php');
else include_once(ADODB_DIR.'/adodb-iterator.inc.php');
class ADORecordSet extends ADODB_BASE_RS {
var $dataProvider = "native";
var $fields = false;
var $blobSize = 100;
var $canSeek = false;
var $sql;
var $EOF = false;
var $emptyTimeStamp = '&nbsp;';
var $emptyDate = '&nbsp;';
var $debug = false;
var $timeCreated=0;
var $bind = false;
var $fetchMode;
var $connection = false;
var $_numOfRows = -1;
var $_numOfFields = -1;
var $_queryID = -1;
var $_currentRow = -1;
var $_closed = false;
var $_inited = false;
var $_obj;
var $_names;
var $_currentPage = -1;
var $_atFirstPage = false;
var $_atLastPage = false;
var $_lastPageNo = -1;
var $_maxRecordCount = 0;
var $datetime = false;
function ADORecordSet($queryID) 
{
$this->_queryID = $queryID;
}
function Init()
{
if ($this->_inited) return;
$this->_inited = true;
if ($this->_queryID) @$this->_initrs();
else {
$this->_numOfRows = 0;
$this->_numOfFields = 0;
}
if ($this->_numOfRows != 0 &&$this->_numOfFields &&$this->_currentRow == -1) {
$this->_currentRow = 0;
if ($this->EOF = ($this->_fetch() === false)) {
$this->_numOfRows = 0;
}
}else {
$this->EOF = true;
}
}
function GetMenu($name,$defstr='',$blank1stItem=true,$multiple=false,
$size=0,$selectAttr='',$compareFields0=true)
{
global $ADODB_INCLUDED_LIB;
if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
return _adodb_getmenu($this,$name,$defstr,$blank1stItem,$multiple,
$size,$selectAttr,$compareFields0);
}
function GetMenu2($name,$defstr='',$blank1stItem=true,$multiple=false,$size=0,$selectAttr='')	
{
return $this->GetMenu($name,$defstr,$blank1stItem,$multiple,
$size,$selectAttr,false);
}
function GetMenu3($name,$defstr='',$blank1stItem=true,$multiple=false,
$size=0,$selectAttr='')
{
global $ADODB_INCLUDED_LIB;
if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
return _adodb_getmenu_gp($this,$name,$defstr,$blank1stItem,$multiple,
$size,$selectAttr,false);
}
function &GetArray($nRows = -1) 
{
global $ADODB_EXTENSION;if ($ADODB_EXTENSION) {
$results = adodb_getall($this,$nRows);
return $results;
}
$results = array();
$cnt = 0;
while (!$this->EOF &&$nRows != $cnt) {
$results[] = $this->fields;
$this->MoveNext();
$cnt++;
}
return $results;
}
function &GetAll($nRows = -1)
{
$arr =&$this->GetArray($nRows);
return $arr;
}
function NextRecordSet()
{
return false;
}
function &GetArrayLimit($nrows,$offset=-1) 
{
if ($offset <= 0) {
$arr =&$this->GetArray($nrows);
return $arr;
}
$this->Move($offset);
$results = array();
$cnt = 0;
while (!$this->EOF &&$nrows != $cnt) {
$results[$cnt++] = $this->fields;
$this->MoveNext();
}
return $results;
}
function &GetRows($nRows = -1) 
{
$arr =&$this->GetArray($nRows);
return $arr;
}
function &GetAssoc($force_array = false,$first2cols = false) 
{
global $ADODB_EXTENSION;
$cols = $this->_numOfFields;
if ($cols <2) {
$false = false;
return $false;
}
$numIndex = isset($this->fields[0]);
$results = array();
if (!$first2cols &&($cols >2 ||$force_array)) {
if ($ADODB_EXTENSION) {
if ($numIndex) {
while (!$this->EOF) {
$results[trim($this->fields[0])] = array_slice($this->fields,1);
adodb_movenext($this);
}
}else {
while (!$this->EOF) {
$keys = array_slice(array_keys($this->fields),1);
$sliced_array = array();
foreach($keys as $key) {
$sliced_array[$key] = $this->fields[$key];
}
$results[trim(reset($this->fields))] = $sliced_array;
adodb_movenext($this);
}
}
}else {
if ($numIndex) {
while (!$this->EOF) {
$results[trim($this->fields[0])] = array_slice($this->fields,1);
$this->MoveNext();
}
}else {
while (!$this->EOF) {
$keys = array_slice(array_keys($this->fields),1);
$sliced_array = array();
foreach($keys as $key) {
$sliced_array[$key] = $this->fields[$key];
}
$results[trim(reset($this->fields))] = $sliced_array;
$this->MoveNext();
}
}
}
}else {
if ($ADODB_EXTENSION) {
if ($numIndex) {
while (!$this->EOF) {
$results[trim(($this->fields[0]))] = $this->fields[1];
adodb_movenext($this);
}
}else {
while (!$this->EOF) {
$v1 = trim(reset($this->fields));
$v2 = ''.next($this->fields);
$results[$v1] = $v2;
adodb_movenext($this);
}
}
}else {
if ($numIndex) {
while (!$this->EOF) {
$results[trim(($this->fields[0]))] = $this->fields[1];
$this->MoveNext();
}
}else {
while (!$this->EOF) {
$v1 = trim(reset($this->fields));
$v2 = ''.next($this->fields);
$results[$v1] = $v2;
$this->MoveNext();
}
}
}
}
$ref =&$results;# workaround accelerator incompat with PHP 4.4 :(
return $ref;
}
function UserTimeStamp($v,$fmt='Y-m-d H:i:s')
{
if (is_numeric($v) &&strlen($v)<14) return adodb_date($fmt,$v);
$tt = $this->UnixTimeStamp($v);
if (($tt === false ||$tt == -1) &&$v != false) return $v;
if ($tt === 0) return $this->emptyTimeStamp;
return adodb_date($fmt,$tt);
}
function UserDate($v,$fmt='Y-m-d')
{
$tt = $this->UnixDate($v);
if (($tt === false ||$tt == -1) &&$v != false) return $v;
else if ($tt == 0) return $this->emptyDate;
else if ($tt == -1) {
}
return adodb_date($fmt,$tt);
}
function UnixDate($v)
{
return ADOConnection::UnixDate($v);
}
function UnixTimeStamp($v)
{
return ADOConnection::UnixTimeStamp($v);
}
function Free()
{
return $this->Close();
}
function NumRows()
{
return $this->_numOfRows;
}
function NumCols()
{
return $this->_numOfFields;
}
function &FetchRow()
{
if ($this->EOF) {
$false = false;
return $false;
}
$arr = $this->fields;
$this->_currentRow++;
if (!$this->_fetch()) $this->EOF = true;
return $arr;
}
function FetchInto(&$arr)
{
if ($this->EOF) return (defined('PEAR_ERROR_RETURN')) ?new PEAR_Error('EOF',-1): false;
$arr = $this->fields;
$this->MoveNext();
return 1;
}
function MoveFirst() 
{
if ($this->_currentRow == 0) return true;
return $this->Move(0);
}
function MoveLast() 
{
if ($this->_numOfRows >= 0) return $this->Move($this->_numOfRows-1);
if ($this->EOF) return false;
while (!$this->EOF) {
$f = $this->fields;
$this->MoveNext();
}
$this->fields = $f;
$this->EOF = false;
return true;
}
function MoveNext() 
{
if (!$this->EOF) {
$this->_currentRow++;
if ($this->_fetch()) return true;
}
$this->EOF = true;
return false;
}
function Move($rowNumber = 0) 
{
$this->EOF = false;
if ($rowNumber == $this->_currentRow) return true;
if ($rowNumber >= $this->_numOfRows)
if ($this->_numOfRows != -1) $rowNumber = $this->_numOfRows-2;
if ($this->canSeek) {
if ($this->_seek($rowNumber)) {
$this->_currentRow = $rowNumber;
if ($this->_fetch()) {
return true;
}
}else {
$this->EOF = true;
return false;
}
}else {
if ($rowNumber <$this->_currentRow) return false;
global $ADODB_EXTENSION;
if ($ADODB_EXTENSION) {
while (!$this->EOF &&$this->_currentRow <$rowNumber) {
adodb_movenext($this);
}
}else {
while (!$this->EOF &&$this->_currentRow <$rowNumber) {
$this->_currentRow++;
if (!$this->_fetch()) $this->EOF = true;
}
}
return !($this->EOF);
}
$this->fields = false;
$this->EOF = true;
return false;
}
function Fields($colname)
{
return $this->fields[$colname];
}
function GetAssocKeys($upper=true)
{
$this->bind = array();
for ($i=0;$i <$this->_numOfFields;$i++) {
$o = $this->FetchField($i);
if ($upper === 2) $this->bind[$o->name] = $i;
else $this->bind[($upper) ?strtoupper($o->name) : strtolower($o->name)] = $i;
}
}
function &GetRowAssoc($upper=1)
{
$record = array();
if (!$this->bind) {
$this->GetAssocKeys($upper);
}
foreach($this->bind as $k =>$v) {
$record[$k] = $this->fields[$v];
}
return $record;
}
function Close() 
{
if (!$this->_closed) {
$this->_closed = true;
return $this->_close();
}else
return true;
}
function RecordCount() {return $this->_numOfRows;}
function MaxRecordCount()
{
return ($this->_maxRecordCount) ?$this->_maxRecordCount : $this->RecordCount();
}
function RowCount() {return $this->_numOfRows;}
function PO_RecordCount($table="",$condition="") {
$lnumrows = $this->_numOfRows;
if ($lnumrows == -1 &&$this->connection) {
IF ($table) {
if ($condition) $condition = " WHERE ".$condition;
$resultrows = &$this->connection->Execute("SELECT COUNT(*) FROM $table $condition");
if ($resultrows) $lnumrows = reset($resultrows->fields);
}
}
return $lnumrows;
}
function CurrentRow() {return $this->_currentRow;}
function AbsolutePosition() {return $this->_currentRow;}
function FieldCount() {return $this->_numOfFields;}
function &FetchField($fieldoffset = -1) 
{
$false = false;
return $false;
}
function&FieldTypesArray()
{
$arr = array();
for ($i=0,$max=$this->_numOfFields;$i <$max;$i++) 
$arr[] = $this->FetchField($i);
return $arr;
}
function &FetchObj()
{
$o =&$this->FetchObject(false);
return $o;
}
function &FetchObject($isupper=true)
{
if (empty($this->_obj)) {
$this->_obj = new ADOFetchObj();
$this->_names = array();
for ($i=0;$i <$this->_numOfFields;$i++) {
$f = $this->FetchField($i);
$this->_names[] = $f->name;
}
}
$i = 0;
if (PHP_VERSION >= 5) $o = clone($this->_obj);
else $o = $this->_obj;
for ($i=0;$i <$this->_numOfFields;$i++) {
$name = $this->_names[$i];
if ($isupper) $n = strtoupper($name);
else $n = $name;
$o->$n = $this->Fields($name);
}
return $o;
}
function &FetchNextObj()
{
$o =&$this->FetchNextObject(false);
return $o;
}
function &FetchNextObject($isupper=true)
{
$o = false;
if ($this->_numOfRows != 0 &&!$this->EOF) {
$o = $this->FetchObject($isupper);
$this->_currentRow++;
if ($this->_fetch()) return $o;
}
$this->EOF = true;
return $o;
}
function MetaType($t,$len=-1,$fieldobj=false)
{
if (is_object($t)) {
$fieldobj = $t;
$t = $fieldobj->type;
$len = $fieldobj->max_length;
}
static $typeMap = array(
'VARCHAR'=>'C',
'VARCHAR2'=>'C',
'CHAR'=>'C',
'C'=>'C',
'STRING'=>'C',
'NCHAR'=>'C',
'NVARCHAR'=>'C',
'VARYING'=>'C',
'BPCHAR'=>'C',
'CHARACTER'=>'C',
'INTERVAL'=>'C',# Postgres
'MACADDR'=>'C',# postgres
##
'LONGCHAR'=>'X',
'TEXT'=>'X',
'NTEXT'=>'X',
'M'=>'X',
'X'=>'X',
'CLOB'=>'X',
'NCLOB'=>'X',
'LVARCHAR'=>'X',
##
'BLOB'=>'B',
'IMAGE'=>'B',
'BINARY'=>'B',
'VARBINARY'=>'B',
'LONGBINARY'=>'B',
'B'=>'B',
##
'YEAR'=>'D',
'DATE'=>'D',
'D'=>'D',
##
'UNIQUEIDENTIFIER'=>'C',# MS SQL Server
##
'TIME'=>'T',
'TIMESTAMP'=>'T',
'DATETIME'=>'T',
'TIMESTAMPTZ'=>'T',
'T'=>'T',
'TIMESTAMP WITHOUT TIME ZONE'=>'T',
##
'BOOL'=>'L',
'BOOLEAN'=>'L',
'BIT'=>'L',
'L'=>'L',
##
'COUNTER'=>'R',
'R'=>'R',
'SERIAL'=>'R',
'INT IDENTITY'=>'R',
##
'INT'=>'I',
'INT2'=>'I',
'INT4'=>'I',
'INT8'=>'I',
'INTEGER'=>'I',
'INTEGER UNSIGNED'=>'I',
'SHORT'=>'I',
'TINYINT'=>'I',
'SMALLINT'=>'I',
'I'=>'I',
##
'LONG'=>'N',
'BIGINT'=>'N',
'DECIMAL'=>'N',
'DEC'=>'N',
'REAL'=>'N',
'DOUBLE'=>'N',
'DOUBLE PRECISION'=>'N',
'SMALLFLOAT'=>'N',
'FLOAT'=>'N',
'NUMBER'=>'N',
'NUM'=>'N',
'NUMERIC'=>'N',
'MONEY'=>'N',
## informix 9.2
'SQLINT'=>'I',
'SQLSERIAL'=>'I',
'SQLSMINT'=>'I',
'SQLSMFLOAT'=>'N',
'SQLFLOAT'=>'N',
'SQLMONEY'=>'N',
'SQLDECIMAL'=>'N',
'SQLDATE'=>'D',
'SQLVCHAR'=>'C',
'SQLCHAR'=>'C',
'SQLDTIME'=>'T',
'SQLINTERVAL'=>'N',
'SQLBYTES'=>'B',
'SQLTEXT'=>'X',
## informix 10
"SQLINT8"=>'I8',
"SQLSERIAL8"=>'I8',
"SQLNCHAR"=>'C',
"SQLNVCHAR"=>'C',
"SQLLVARCHAR"=>'X',
"SQLBOOL"=>'L'
);
$tmap = false;
$t = strtoupper($t);
$tmap = (isset($typeMap[$t])) ?$typeMap[$t] : 'N';
switch ($tmap) {
case 'C':
if ($this->blobSize >= 0) {
if ($len >$this->blobSize) return 'X';
}else if ($len >250) {
return 'X';
}
return 'C';
case 'I':
if (!empty($fieldobj->primary_key)) return 'R';
return 'I';
case false:
return 'N';
case 'B':
if (isset($fieldobj->binary)) 
return ($fieldobj->binary) ?'B': 'X';
return 'B';
case 'D':
if (!empty($this->connection) &&!empty($this->connection->datetime)) return 'T';
return 'D';
default: 
if ($t == 'LONG'&&$this->dataProvider == 'oci8') return 'B';
return $tmap;
}
}
function _close() {}
function AbsolutePage($page=-1)
{
if ($page != -1) $this->_currentPage = $page;
return $this->_currentPage;
}
function AtFirstPage($status=false)
{
if ($status != false) $this->_atFirstPage = $status;
return $this->_atFirstPage;
}
function LastPageNo($page = false)
{
if ($page != false) $this->_lastPageNo = $page;
return $this->_lastPageNo;
}
function AtLastPage($status=false)
{
if ($status != false) $this->_atLastPage = $status;
return $this->_atLastPage;
}
}
class ADORecordSet_array extends ADORecordSet
{
var $databaseType = 'array';
var $_array;
var $_types;
var $_colnames;
var $_skiprow1;
var $_fieldobjects;
var $canSeek = true;
var $affectedrows = false;
var $insertid = false;
var $sql = '';
var $compat = false;
function ADORecordSet_array($fakeid=1)
{
global $ADODB_FETCH_MODE,$ADODB_COMPAT_FETCH;
$this->compat = !empty($ADODB_COMPAT_FETCH);
$this->ADORecordSet($fakeid);
$this->fetchMode = $ADODB_FETCH_MODE;
}
function _transpose($addfieldnames=true)
{
global $ADODB_INCLUDED_LIB;
if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
$hdr = true;
$fobjs = $addfieldnames ?$this->_fieldobjects : false;
adodb_transpose($this->_array,$newarr,$hdr,$fobjs);
$this->_skiprow1 = false;
$this->_array =&$newarr;
$this->_colnames = $hdr;
adodb_probetypes($newarr,$this->_types);
$this->_fieldobjects = array();
foreach($hdr as $k =>$name) {
$f = new ADOFieldObject();
$f->name = $name;
$f->type = $this->_types[$k];
$f->max_length = -1;
$this->_fieldobjects[] = $f;
}
$this->fields = reset($this->_array);
$this->_initrs();
}
function InitArray($array,$typearr,$colnames=false)
{
$this->_array = $array;
$this->_types = $typearr;
if ($colnames) {
$this->_skiprow1 = false;
$this->_colnames = $colnames;
}else  {
$this->_skiprow1 = true;
$this->_colnames = $array[0];
}
$this->Init();
}
function InitArrayFields(&$array,&$fieldarr)
{
$this->_array =&$array;
$this->_skiprow1= false;
if ($fieldarr) {
$this->_fieldobjects =&$fieldarr;
}
$this->Init();
}
function &GetArray($nRows=-1)
{
if ($nRows == -1 &&$this->_currentRow <= 0 &&!$this->_skiprow1) {
return $this->_array;
}else {
$arr =&ADORecordSet::GetArray($nRows);
return $arr;
}
}
function _initrs()
{
$this->_numOfRows =  sizeof($this->_array);
if ($this->_skiprow1) $this->_numOfRows -= 1;
$this->_numOfFields =(isset($this->_fieldobjects)) ?
sizeof($this->_fieldobjects):sizeof($this->_types);
}
function Fields($colname)
{
$mode = isset($this->adodbFetchMode) ?$this->adodbFetchMode : $this->fetchMode;
if ($mode &ADODB_FETCH_ASSOC) {
if (!isset($this->fields[$colname])) $colname = strtolower($colname);
return $this->fields[$colname];
}
if (!$this->bind) {
$this->bind = array();
for ($i=0;$i <$this->_numOfFields;$i++) {
$o = $this->FetchField($i);
$this->bind[strtoupper($o->name)] = $i;
}
}
return $this->fields[$this->bind[strtoupper($colname)]];
}
function &FetchField($fieldOffset = -1) 
{
if (isset($this->_fieldobjects)) {
return $this->_fieldobjects[$fieldOffset];
}
$o =  new ADOFieldObject();
$o->name = $this->_colnames[$fieldOffset];
$o->type =  $this->_types[$fieldOffset];
$o->max_length = -1;
return $o;
}
function _seek($row)
{
if (sizeof($this->_array) &&0 <= $row &&$row <$this->_numOfRows) {
$this->_currentRow = $row;
if ($this->_skiprow1) $row += 1;
$this->fields = $this->_array[$row];
return true;
}
return false;
}
function MoveNext() 
{
if (!$this->EOF) {
$this->_currentRow++;
$pos = $this->_currentRow;
if ($this->_numOfRows <= $pos) {
if (!$this->compat) $this->fields = false;
}else {
if ($this->_skiprow1) $pos += 1;
$this->fields = $this->_array[$pos];
return true;
}
$this->EOF = true;
}
return false;
}
function _fetch()
{
$pos = $this->_currentRow;
if ($this->_numOfRows <= $pos) {
if (!$this->compat) $this->fields = false;
return false;
}
if ($this->_skiprow1) $pos += 1;
$this->fields = $this->_array[$pos];
return true;
}
function _close() 
{
return true;
}
}
function ADOLoadDB($dbType) 
{
return ADOLoadCode($dbType);
}
function ADOLoadCode($dbType) 
{
global $ADODB_LASTDB;
if (!$dbType) return false;
$db = strtolower($dbType);
switch ($db) {
case 'ado': 
if (PHP_VERSION >= 5) $db = 'ado5';
$class = 'ado';
break;
case 'ifx':
case 'maxsql': $class = $db = 'mysqlt';break;
case 'postgres':
case 'postgres8':
case 'pgsql': $class = $db = 'postgres7';break;
default:
$class = $db;break;
}
$file = ADODB_DIR."/drivers/adodb-".$db.".inc.php";
@include_once($file);
$ADODB_LASTDB = $class;
if (class_exists("ADODB_".$class)) return $class;
if (!file_exists($file)) ADOConnection::outp("Missing file: $file");
else ADOConnection::outp("Syntax error in file: $file");
return false;
}
function &NewADOConnection($db='')
{
$tmp =&ADONewConnection($db);
return $tmp;
}
function &ADONewConnection($db='')
{
GLOBAL $ADODB_NEWCONNECTION,$ADODB_LASTDB;
if (!defined('ADODB_ASSOC_CASE')) define('ADODB_ASSOC_CASE',2);
$errorfn = (defined('ADODB_ERROR_HANDLER')) ?ADODB_ERROR_HANDLER : false;
$false = false;
if ($at = strpos($db,'://')) {
$origdsn = $db;
if (PHP_VERSION <5) $dsna = @parse_url($db);
else {
$fakedsn = 'fake'.substr($db,$at);
$dsna = @parse_url($fakedsn);
$dsna['scheme'] = substr($db,0,$at);
if (strncmp($db,'pdo',3) == 0) {
$sch = explode('_',$dsna['scheme']);
if (sizeof($sch)>1) {
$dsna['host'] = isset($dsna['host']) ?rawurldecode($dsna['host']) : '';
$dsna['host'] = rawurlencode($sch[1].':host='.rawurldecode($dsna['host']));
$dsna['scheme'] = 'pdo';
}
}
}
if (!$dsna) {
$db = str_replace('@/','@adodb-fakehost/',$db);
$dsna = parse_url($db);
if (!$dsna) return $false;
$dsna['host'] = '';
}
$db = @$dsna['scheme'];
if (!$db) return $false;
$dsna['host'] = isset($dsna['host']) ?rawurldecode($dsna['host']) : '';
$dsna['user'] = isset($dsna['user']) ?rawurldecode($dsna['user']) : '';
$dsna['pass'] = isset($dsna['pass']) ?rawurldecode($dsna['pass']) : '';
$dsna['path'] = isset($dsna['path']) ?rawurldecode(substr($dsna['path'],1)) : '';# strip off initial /
if (isset($dsna['query'])) {
$opt1 = explode('&',$dsna['query']);
foreach($opt1 as $k =>$v) {
$arr = explode('=',$v);
$opt[$arr[0]] = isset($arr[1]) ?rawurldecode($arr[1]) : 1;
}
}else $opt = array();
}
if (!empty($ADODB_NEWCONNECTION)) {
$obj = $ADODB_NEWCONNECTION($db);
}else {
if (!isset($ADODB_LASTDB)) $ADODB_LASTDB = '';
if (empty($db)) $db = $ADODB_LASTDB;
if ($db != $ADODB_LASTDB) $db = ADOLoadCode($db);
if (!$db) {
if (isset($origdsn)) $db = $origdsn;
if ($errorfn) {
$ignore = false;
$errorfn('ADONewConnection','ADONewConnection',-998,
"could not load the database driver for '$db'",
$db,false,$ignore);
}else
ADOConnection::outp( "<p>ADONewConnection: Unable to load database driver '$db'</p>",false);
return $false;
}
$cls = 'ADODB_'.$db;
if (!class_exists($cls)) {
adodb_backtrace();
return $false;
}
$obj = new $cls();
}
# constructor should not fail
if ($obj) {
if ($errorfn)  $obj->raiseErrorFn = $errorfn;
if (isset($dsna)) {
if (isset($dsna['port'])) $obj->port = $dsna['port'];
foreach($opt as $k =>$v) {
switch(strtolower($k)) {
case 'new':
$nconnect = true;$persist = true;break;
case 'persist':
case 'persistent': 	$persist = $v;break;
case 'debug':		$obj->debug = (integer) $v;break;
#ibase
case 'role':		$obj->role = $v;break;
case 'dialect': 	$obj->dialect = (integer) $v;break;
case 'charset':		$obj->charset = $v;$obj->charSet=$v;break;
case 'buffers':		$obj->buffers = $v;break;
case 'fetchmode':   $obj->SetFetchMode($v);break;
#ado
case 'charpage':	$obj->charPage = $v;break;
#mysql,mysqli
case 'clientflags': $obj->clientFlags = $v;break;
#mysql,mysqli,postgres
case 'port': $obj->port = $v;break;
#mysqli
case 'socket': $obj->socket = $v;break;
#oci8
case 'nls_date_format': $obj->NLS_DATE_FORMAT = $v;break;
}
}
if (empty($persist))
$ok = $obj->Connect($dsna['host'],$dsna['user'],$dsna['pass'],$dsna['path']);
else if (empty($nconnect))
$ok = $obj->PConnect($dsna['host'],$dsna['user'],$dsna['pass'],$dsna['path']);
else
$ok = $obj->NConnect($dsna['host'],$dsna['user'],$dsna['pass'],$dsna['path']);
if (!$ok) return $false;
}
}
return $obj;
}
function _adodb_getdriver($provider,$drivername,$perf=false)
{
switch ($provider) {
case 'odbtp':   if (strncmp('odbtp_',$drivername,6)==0) return substr($drivername,6);
case 'odbc':   if (strncmp('odbc_',$drivername,5)==0) return substr($drivername,5);
case 'ado':   if (strncmp('ado_',$drivername,4)==0) return substr($drivername,4);
case 'native':  break;
default:
return $provider;
}
switch($drivername) {
case 'mysqlt':
case 'mysqli': 
$drivername='mysql';
break;
case 'postgres7':
case 'postgres8':
$drivername = 'postgres';
break;
case 'firebird15': $drivername = 'firebird';break;
case 'oracle': $drivername = 'oci8';break;
case 'access': if ($perf) $drivername = '';break;
case 'db2': break;
case 'sapdb': break;
default:
$drivername = 'generic';
break;
}
return $drivername;
}
function &NewPerfMonitor(&$conn)
{
$false = false;
$drivername = _adodb_getdriver($conn->dataProvider,$conn->databaseType,true);
if (!$drivername ||$drivername == 'generic') return $false;
include_once(ADODB_DIR.'/adodb-perf.inc.php');
@include_once(ADODB_DIR."/perf/perf-$drivername.inc.php");
$class = "Perf_$drivername";
if (!class_exists($class)) return $false;
$perf = new $class($conn);
return $perf;
}
function &NewDataDictionary(&$conn,$drivername=false)
{
$false = false;
if (!$drivername) $drivername = _adodb_getdriver($conn->dataProvider,$conn->databaseType);
include_once(ADODB_DIR.'/adodb-lib.inc.php');
include_once(ADODB_DIR.'/adodb-datadict.inc.php');
$path = ADODB_DIR."/datadict/datadict-$drivername.inc.php";
if (!file_exists($path)) {
ADOConnection::outp("Dictionary driver '$path' not available");
return $false;
}
include_once($path);
$class = "ADODB2_$drivername";
$dict = new $class();
$dict->dataProvider = $conn->dataProvider;
$dict->connection = &$conn;
$dict->upperName = strtoupper($drivername);
$dict->quote = $conn->nameQuote;
if (!empty($conn->_connectionID))
$dict->serverInfo = $conn->ServerInfo();
return $dict;
}
function adodb_pr($var,$as_string=false)
{
if ($as_string) ob_start();
if (isset($_SERVER['HTTP_USER_AGENT'])) {
echo " <pre>
";print_r($var);echo "</pre>
";
}else
print_r($var);
if ($as_string) {
$s = ob_get_contents();
ob_end_clean();
return $s;
}
}
function adodb_backtrace($printOrArr=true,$levels=9999)
{
global $ADODB_INCLUDED_LIB;
if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
return _adodb_backtrace($printOrArr,$levels);
}
}

Did this file decode correctly?

Original Code

<?php // This file is protected by copyright law & provided under license. Copyright(C) 2002-2015 www.nuohe.cc, All rights reserved.
$OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');$OO00O0000=87820;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';eval(($$O0O0000O0('JE9PME9PMDAwMD0kT09PMDAwMDAwezE3fS4kT09PMDAwMDAwezEyfS4kT09PMDAwMDAwezE4fS4kT09PMDAwMDAwezV9LiRPT08wMDAwMDB7MTl9O2lmKCEwKSRPMDAwTzBPMDA9JE9PME9PMDAwMCgkT09PME8wTzAwLCdyYicpOyRPTzBPTzAwME89JE9PTzAwMDAwMHsxN30uJE9PTzAwMDAwMHsyMH0uJE9PTzAwMDAwMHs1fS4kT09PMDAwMDAwezl9LiRPT08wMDAwMDB7MTZ9OyRPTzBPTzAwTzA9JE9PTzAwMDAwMHsxNH0uJE9PTzAwMDAwMHswfS4kT09PMDAwMDAwezIwfS4kT09PMDAwMDAwezB9LiRPT08wMDAwMDB7MjB9OyRPTzBPTzAwME8oJE8wMDBPME8wMCwxMjYxKTskT08wME8wME8wPSgkT09PMDAwME8wKCRPTzBPTzAwTzAoJE9PME9PMDAwTygkTzAwME8wTzAwLDM4MCksJ0VudGVyeW91d2toUkhZS05XT1VUQWFCYkNjRGRGZkdnSWlKakxsTW1QcFFxU3NWdlh4WnowMTIzNDU2Nzg5Ky89JywnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycpKSk7ZXZhbCgkT08wME8wME8wKTs=')));return;?>
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TolsDbWINUnMCBxzcTSYtmciFJELFMaicr9VduLINUnMCBxzcTSYtmciFJELDoyzTB92cAcpFmY0we0IcMySF2A7eWp2CbwIkoiiF0fldLlrwe0IcMySF2A7eWp2CbwIkoiiF1OZCB5zCBY0DB9VFZE9wuOZfBA7eWp2CbwIkofldLlrwe0IHeSYtmciFJELFMypF2ayFmkvFLcVwe0IcMySF2A7eWp2CbwIkolzd0Oifoazwe0IcMySF2A7eWp2CbwIkoYiC2ilA2ajFZE9weH2HeE7eWp2CbwIko1ldAYiC2ilwe0IcMySF2A7eWp2CbwIko1ldAYiC2ilUo9zfeSYtmciFJELdBasW2yjDoaWd3k0we0IHTrZHTr7eWp2CbwIko1ldAYiC2ilW29sFuklF3HINUnMCBxzcTSYtmciFJELF3lzOoy0cUE9wociduYlKX0hfMyZwtOzGbYADB1lA3OidbEINUnMCBxzcTSYtmciFJELCbkZCbledoyzFZE9wtfnOr9UcBYvFMOTcbOgCbkZCbLmKX0hfMyZwtOVd051doxTfukpdMfzwe0IcMySF2A7eWp2CbwIko51dAYiC2ilUol0FZE9weE7eWp2CbwIko51dAYiC2ilTBlzF2azwe0IHeSYtmciFJELFoymcAa4cBY1foaed3aVfykvf3HINUn0FmalKX0hfMyZwtO1dMlxfBaTd3k0we0IcMySF2A7eWp2CbwIkoxlcmONfbOlFJE9wociduYlKX0hfMyZwtOZDBfPfr91foaZwe0IcMySF2A7eWp2CbwIkoyVF2lNfbOlFJE9wociduYlKX0hfMyZwtOifbOvAM9SdokiC2SINUnMCBxzcTSYtmciFJELFo9vFLyMcMajfoaLAM93FZE9wociduYlKX0hfMyZwtOMdLa4cBY1foAINUnMCBxzcTSYtmciFJELcM5eCBYPcAa4cBY1foAINUnMCBxzcTSYtmciFJELCMxvCLaVC29LcaO5FoAINUnMCBxzcTSYtmciFJELFmYWFMaMDbIINUEJWAONAMajd3kLA2a0bZw7eWp2CbwIkoy1fo9ed21sDbWINUn0FmalKX0hfMyZwtO0FMyVF09McJE9weE7eWp2CbwIkuOZCB5zW250we0IHeSYtmciFJELcMa0C2iYd2OlNBciduYlKX0hfMyZwtOV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cUIXReESHtXLFmkdHl0SkukZBzYfRtOZFlSxbUL7eWpZcbO1FM4Iwrnico9LCl9sD3OpdBAPkukZBzafRtOZFlS2bUXLFmkdY10SkukZBzkfRtOZFlSzbUXLFmkdHa0pKX0hgW0hcmaVC3Opd24IabYlFLOifoAPkuCSkocsfe0mBU1sRBWmRtOmdbW9cMySF2ApeWp7eWPLfuWINUELfoipFZ0+aB5pGrOifoAPkuCpKX0hDBCIhtILfuWINT09wociduYlwux8kuO0we09wt0xhUEMkJO2wtr9wociduYlhUnZcbO1FM4IkuC7eWplduYlwolMwtILfuWINT0IHtLIFMa0fbkVwtO0DolzRT5ldbn0GAOifoA7eWplduYlwolMwtILfuWINT0IRTrpwuSYtm0YtmklfuaZdJEPkofsftLIN2yLd2OJb2fscoy0cUILcM10RtO0ftLIKJnico9LCl9LCbOlhtOMdbWSkuO0hTSYtm0YtMc1dMY0DB9VwyazcbkADB1lA3OidbEPkuCSkocsfe0mBU1sRBWIUeppKmHmRtOmdbW9cMySF2ApeWp7eWppcJEPwBlzF2a0htO2hULIFMa0fbkVwtO0DolzRT5ldbn0GaOpdBaTfoysFeSYtJHIF3OZdoaVher0hUnidoxvf3HIBalcBA1YOrOwUr1YA1HIcM9ZdBy0eWppcJEPDbYgdmascbkpCZILfJLIkJczfukScB4PkuCpNer0hUnZcbO1FM4IhtOmdbWpwe9ico9LCl9mdBOifoAPkocsftXLfJLIKJnico9LCl9LCbOlhtOMdbWSkuCpKX0hkuO0we0IkuOPDbHsNlaVDbiADB1lA3OidbEPkuCpKX0hDBCIhtILfuWINT09wociduYlwux8kuO0we09wt0xhUEMkJO2wtr9wociduYlhUnZcbO1FM4IkuC7eWppcJEPkuO0we09weEpwuklfuaZdJELfoipFZ0+cB1XfulADB1lA3OidbE7eWpZcbO1FM4IhtOmdbWpwe9ico9LCl9mdBOifoAPkocsftXLfuWpwePICBOvcokgcoy0cUILcM10RtO0ftL7eWp9eWpMfB5jfolvdJnlF2YiFoAPkuHSko1ic2ljb3y1d3OlFz1MCBxzcULYtmSYtmklfuaZdJELfoipFZ0+CBOLFUILFZXLdBymDBYg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

Function Calls

fread 3
strtr 2
fclose 1
OOO0000O0 1
urldecode 1
str_replace 1
base64_decode 2

Variables

$O0O0000O0 OOO0000O0
$OO00O0000 87820
$OO00O00O0 if (!defined('_ADODB_LAYER')) { define('_ADODB_LAYER',1)..
$OO0OO0000 fopen
$OO0OO000O fread
$OO0OO00O0 strtr
$OOO000000 th6sbehqla4co_sadfpnr
$OOO0000O0 base64_decode
$OOO0O0O00 index.php

Stats

MD5 363b8b3742995ebd37ab9e885225193f
Eval Count 3
Decode Time 272 ms