Login   Register  
PHP Classes
elePHPant
Icontem

File: db_adodb.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Eustaquio Rangel de Oliveira Jr.  >  phpreports  >  db_adodb.php  >  Download  
File: db_adodb.php
Role: Auxiliary script
Content type: text/plain
Description: ADOdb database interface
Class: phpreports
Report Generator
Author: By
Last change:
Date: 2003-03-13 15:05
Size: 1,708 bytes
 

Contents

Class file image Download
<?php
    
// change to wherever you stored adodb
    
require_once("adodb/adodb.inc.php");

    
// set fetch mode to associative arrays
    
$ADODB_FETCH_MODE ADODB_FETCH_ASSOC;

    
// Part of the hack to get the db_fetch function to work
    
$_gaRows  = array();
    
$_giCount 0;

    function 
db_connect($oArray) {
        
$sType     substr($oArray[2], 0strpos($oArray[2], ":"));
        
$oArray[2] = substr($oArray[2], strpos($oArray[2], ":") + 1);
        
$oCon      ADONewConnection($sType);
        
$oCon->Connect($oArray[2], $oArray[0], $oArray[1], $oArray[3]);
        
        if(!
$oCon) {
            die(
$oCon->ErrorMsg());
        }
        return 
$oCon;
    }

    function 
db_select_db($sDatabase) {
        
// Already taken care of in the $oCon->Connect() call
    
}

    function 
db_query($oCon$sSQL) {
        
$oRes $oCon->Execute($sSQL);
        
        if(!
$oRes) {
            die(
$oCon->ErrorMsg());
        }
        return 
$oRes;
    }

    function 
db_colnum($oRes) {
        return 
$oRes->FieldCount();
    }

    function 
db_columnName($oRes$iPos) {
        
$oField $oRes->FetchField($iPos 1);
        return 
$oField->name;
    }
        
    function 
db_columnType($oRes$iPos) {
        
$oField $oRes->FetchField($iPos 1);
        return 
$oField->type;
    }

    function 
db_fetch($oRes) {
        
// needed nasty hack to get it to work
        // adodb didnt like me calling $oRes->FetchRow()
        // it would never move to the next row and it would infinate loop
        
global $_gaRows$_giCount;
        
        if(
$_gaRows == array()) {
            
$_gaRows $oRes->GetArray();
            
$_giCount++;
            return 
$_gaRows[0];
        } else {
            if(
$_giCount >= $oRes->RowCount()) {
                return 
false;
            }
            
$_giCount++;
            return 
$_gaRows[$_giCount 1];
        }
    }

    function 
db_free($oRes) {
        
$oRes->Close();
        return 
true;
    }

    function 
db_disconnect($oCon) {
        
$oCon->Close();
        return 
true;
    }
?>