PHP Classes

File: db_adodb.php

Recommend this page to a friend!
  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: 21 years ago
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], 0, strpos($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;
    }
?>