Login   Register  
PHP Classes
elePHPant
Icontem

File: sql.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Erik Giberti  >  sqltoolkit  >  sql.php  >  Download  
File: sql.php
Role: Application script
Content type: text/plain
Description: The is the main functionality
Class: sqltoolkit
An API for interfacing with databases
Author: By
Last change:
Date: 2003-03-13 14:13
Size: 6,803 bytes
 

Contents

Class file image Download
<?php
/*

    sql.php - PHP functions for obscuring datasource, database_result and database_connection classes
    Copyright (C) 2003 Erik Giberti (AF-Design), All rights reserved.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 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
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

*/

if (!defined("_SQL_TOOLKIT_FUNCTIONS_")){
    
define("_SQL_TOOLKIT_FUNCTIONS_"TRUE);
    


/*

    CONFIGURATION OPTIONS 
    
*/



// Set this to your include path for the system. This is most important on 
// shared hosting solutions where you may not be able to put these files
// into a global include directory.
$includesPath "";


// optional files, you can comment out the rows you know you will not use
// to save processing time.
require($includesPath "sql_xml.php");    // for importing xml data (not required for export)


/*

    FILE DEPENDENCY

*/




// these are the three class types required
require($includesPath "datasource.php");
require(
$includesPath "database_connection.php");
require(
$includesPath "database_result.php");

// location of your datasource config file. You will need to edit this file to
// setup all the datasources you will want to use.
require($includesPath "datasource_config.php");


/* 

    DATA MANIPULATION AND RETURN FUNCTIONS FOR CLASS: database_connection
    
*/





// class:database_connection database_connect(class:datasource);
function database_connect(&$connection_settings){
    return new 
database_connection($connection_settings);
}
function 
database_query(&$db_connection$query){
    return new 
database_result($db_connection->query_connection($query), $db_connection->get_dbtype());
}
function 
database_close(&$db_connection){
    return 
$db_connection->close_connection();
}





/* 

    DATA MANIPULATION AND RETURN FUNCTIONS FOR CLASS: database_result
    
*/





// utility functions
function database_fetch_data(&$db_result){
    return 
$db_result->result_data();
}
function 
database_fetch_info(&$db_result){
    return 
$db_result->result_info();
}
function 
database_free_result(&$db_result){
    
// this is a hack since as of php 4.3.1 unsetting a pass by reference doesn't really work.
    // unset($db_result);
    
$db_result 0;
    return 
TRUE;
}


// return result rows
function database_fetch_assoc(&$db_result){
    return 
$db_result->fetch_assoc();
}
function 
database_fetch_row(&$db_result){
    return 
$db_result->fetch_row();
}
function 
database_fetch_object(&$db_result){
    return 
$db_result->fetch_object();
}


// return info about result set
function database_num_rows(&$db_result){
    return 
$db_result->num_rows();
}
function 
database_num_fields(&$db_result){
    return 
$db_result->num_fields();
}


// manipulate the internal pointer
function database_data_seek(&$db_result$row){
    return 
$db_result->data_seek($row);
}





/*

    HTML DISPLAY FUNCTIONS

*/





// this function allows a quick dump of the data returned in an HTML table
function database_result_dump($dataset){
    
$dataset->data_seek(0);
    print 
"
    <style>
    .database_result_dump_heading{font-family: verdana, arial, helvetica; font-size: 8pt; color: black; background-color: cccccc; }
    .database_result_dump_data{font-family: verdana, arial, helvetica; font-size: 8pt; color: black; background-color: ffffaa; }
    </style>
    "
;
    print 
"<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\">\n";
    if (
$dataset->num_rows() * $dataset->num_fields()){
        print 
"<tr>\n";
        print 
"<th class=\"database_result_dump_heading\" colspan=\"" . ($dataset->num_fields() + 1) . "\">database record: " $dataset->num_rows() . " rows returned</td>\n";
        print 
"</tr>\n";
        print 
"<tr>\n";
        print 
"<td class=\"database_result_dump_heading\"></td>\n";
        
$columns array_keys($dataset->fetch_assoc());
        foreach (
$columns AS $column){
            if (
$column != "database_result_info") {
                print 
"<td class=\"database_result_dump_heading\">" $column "</td>";
            }
        }
        print 
"</tr>\n";    
        
$dataset->data_seek(0);
        for (
$row=0$row<$dataset->num_rows(); $row++){
            
$this_row_assoc $dataset->fetch_assoc();
            print 
"<tr>\n";
            print 
"<td class=\"database_result_dump_heading\" align=\"center\">" $row "</td>\n";
            foreach (
$columns AS $column){
                if (
$column != "database_result_info") {
                    print 
"<td class=\"database_result_dump_data\">" $this_row_assoc[$column] . "</td>\n";
                }
            }        
            print 
"</tr>\n";
        }
    } else {
        print 
"<tr>\n";
        print 
"<th class=\"database_result_dump_heading\">database result: no data returned.</td>\n";
        print 
"</tr>";
    }
    print 
"</table>\n";
    return 
true;
// end function database_result_dump($result)





/*

    CONVIENIENCE FUNCTIONS 

*/






// database_result database_quick_query(string, string);
function database_quick_query($datasource$query){
    
$dbConnection         = new database_connection($datasource);
    if (
$dbConnection == FALSE){
        die (
"<b>sql.php</b>: database_quick_query() invalid datasource connection, aborting query.<br />\n");
    }    
    
$myDataset            $dbConnection->query_connection($query);
    
$normalizedData     = new database_result($myDataset$datasource->get_type());
    
$disconectstatus    $dbConnection->close_connection();
    return 
$normalizedData;
}


// convert the database_result to standard xml syntax
function database_result_xml($db_result$encoding "ISO-8859-1"){
    
$xml_string "<?xml version=\"1.0\" encoding=\""$encoding "\"?>\n";
    
database_data_seek($db_result,0);
    
// print "<!DOCTYPE project-listing SYSTEM \"http://freshmeat.net/backend/fm-projects-0.1.dtd\">\n";
    
$xml_string .= "<dataset cols=\"" database_num_fields($db_result) . "\" rows=\"" database_num_rows($db_result) . "\">\n";
    while(
$row database_fetch_assoc($db_result)){
        
$xml_string .= "  <row>\n";
        
$cols array_keys($row);
        foreach (
$cols as $column){
            
$xml_string .= "    <" $column ">" htmlentities($row[$column]) .  "</" $column ">\n";
        }
        
$xml_string .= "  </row>\n";
    }
    
$xml_string .= "</dataset>\n";
    return 
$xml_string;
}



// end functions code lock

?>