Database
Database Du er her: /  Forsiden  /  Kildekoden  /  Db  /  Database   Login nu   Login
Database
 ««« Se kilde koden
Database
Database Basic Database Database Base Database Database Component Database Database Db  Database Database Dto Database Database Form Database Database Form-elements Database Database Jquery Database Database Layout Database Database Menu Database Database Menu-fisheye Database Database Mvc Database Database Tab Database Database Table Database Database Template Database Database Util Database
Database
Database
Database Index
 
Tilbage

Navn : Database.php


Sample code, tutorial

Sådan benyttes komponenten Database klassen

Først skal du inkludere den fil der beskriver komponenten, som en klasse fil

  • <?
    require_once(HTML_PACKAGE_PATH.'/Database.php');
    ?>

Dernæst kan du enten benytte komponenten som et taglib (statiske metoder):

  • <?
    Database
    ::display($param1, $param2, $param3, ...);
    ?>

eller du kan lave en instance af komponenten og benytte metoderne direkte:

  • <?
    $object
    = new Database($param1, $param2, $param3, ...);
    print
    $object->getHtml();
    ?>

Parent html

Sådan vises komponenten Database klassen

ERROR, Database->getHtml() *** ABSTRACT *** You MUST implement this

PHP source code

Den fulde PHP kildekode for Database klassen

<?
/**
* @package db
* @see HTML_DB_DATABASE_PATH.'/Database.php'
* @copyright (c) http://Finn-Rasmussen.com
* @license http://Finn-Rasmussen.com/license/ myPHP License conditions
* @author http://Finn-Rasmussen.com
* @version 1.10
* @since 22-feb-2007
*/

/**
* The required files
*/
require_once(HTML_DB_DATABASE_PATH.'/DatabaseCommon.php');
if (
defined('HTML_LOG_UTIL_PATH')) {
    require_once(
HTML_LOG_UTIL_PATH.'/Log.php');
}

/**
* The interface towards the mysql database
* The interface use an advanced sql caching methode
* <code>
* Usage:
*   $myDb = new Database();
*   $myDb->open();       // Open a connection to the database
*         :
*   $myDb->doSomeThing() // Use the connection object to operate on table data
*         :
*   $myDb->freeResult(); // Free the resources
*   $myDb->close();      // Close the connection
* </code>
* @package db
*/

class Database extends DatabaseCommon {
    
/**
     * @var int $affectedRows The Number of rows affected by the drop, insert, update etc.
     */
    
var $affectedRows = 0;

    
/**
     * @var int $numRows Number of rows returned from a select,explain, etc. query
     */
    
var $numRows = 0;

    
/**
     * @var int $row The row returned
     */
    
var $row = NULL;

    
/**
     * @var String $sql The query
     */
    
var $sql = '';

    
/**
     * @var String $error The error message for the query
     */
    
var $error = '';

    
/**
     * Constructor
     */
    
function Database() {
        
$this->DatabaseCommon(CLASS_NAME_CONNECTION);
    }

    
/**
     * Execute the specified query. SELECT, UPDATE, INSERT etc...
     * Return false or a resource identifier (for SELECT,SHOW,EXPLAIN or DESCRIBE, ...)
     * @param String $sql The sql query to execute
     * @return boolean Returns TRUE (INSERT, UPDATE, DELETE, ...)
     */
    
function query($sql) {
        
$rc = false;
        if (
$this->connection!=NULL) {
            
$con = $this->connection->getConnection();
            if (
$con==NULL) {
                
$msg = $this->getClassName().'->query(), The connection is NULL. $this->connection->getConnection()';
                if (
defined('HTML_LOG_UTIL_PATH')) {
                    
Log::fatal(__FILE__,__LINE__,$msg);
                } else {
                    if (
defined('DEBUG_LEVEL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) {
                        
Message::add($msg,__FILE__,__LINE__);
                    }
                }
                
$this->connection->close();
                return
$rc;
            }
            
$this->result = mysql_query($sql, $con);
            
$rc = $this->result!=FALSE;
            if (
$rc) {
                
/**
                 * SELECT, SHOW, DESCRIBE eller EXPLAIN returns a resource
                 * UPDATE, DELETE, DROP etc. return true on success
                 */
                
if ($this->result!==true) {
                    
$this->numRows = mysql_num_rows($this->result);
                } else {
                    
$this->affectedRows = mysql_affected_rows($con);
                }
                
$msg = $this->getClassName()."->query(), OK, sql=".$sql." affectedRows=".$this->affectedRows;
                if (
defined('HTML_LOG_UTIL_PATH')) {
                    
Log::query(__FILE__,__LINE__,$msg);
                } else {
                    if (
defined('DEBUG_LEVEL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) {
                        
Message::add($msg,__FILE__,__LINE__);
                    }
                }
            } else {
                
$this->error = $this->getError();
                
$msg = $this->getClassName().'->query(), FAILED, sql='.$sql;
                if (
defined('HTML_LOG_UTIL_PATH')) {
                    
Log::query(__FILE__,__LINE__,$msg);
                } else {
                    if (
defined('DEBUG_LEVEL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) {
                        
Message::add($msg,__FILE__,__LINE__);
                    }
                }
                if (
defined('DEBUG_LEVEL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) {
                    
Message::add('SQL:<pre>'.$msg,__FILE__,__LINE__);
                }
            }
        } else {
            
$msg = $this->getClassName().'->query(), FAILED, $this->connection is NULL';
            if (
defined('HTML_LOG_UTIL_PATH')) {
                
Log::fatal(__FILE__,__LINE__,$msg);
            } else {
                if (
defined('DEBUG_LEVEL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) {
                    
Message::add($msg,__FILE__,__LINE__);
                }
            }
        }
        return
$rc;
    }

    
/**
     * Return the ID generated for the INSERT statement for an AUTO_INCREMENT type
     * @return int Return the ID generated by the INSERT query
     */
    
function getInsertId() {
        
$con = $this->connection->getConnection();
        if (
$con==NULL) {
            
$msg = $this->getClassName().'->getInsertId(), The connection is NULL. $this->connection->getConnection()';
            if (
defined('HTML_LOG_UTIL_PATH')) {
                
Log::fatal(__FILE__,__LINE__,$msg);
            } else {
                if (
defined('DEBUG_LEVEL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) {
                    
Message::add($msg,__FILE__,__LINE__);
                }
            }
            
$this->connection->close();
            return -
1;
        }
        return
mysql_insert_id($con);
    }

    
/**
     * Get the affected rows
     * @return int The number of rows affected by the query
     */
    
function getAffectedRows() {
        return
$this->affectedRows;
    }

    
/**
     * Get the number of rows
     * @return int The number of rows returned by the query
     */
    
function getNumRows() {
        return
$this->numRows;
    }

    
/**
     * Fetch one row of data from the result associated with the specified result identifier
     * @param  object $result The result identifier or NULL
     * @return object Returns an array that corresponds to the fetched row, or FALSE if there are no more rows
     */
    
function fetchRow($result='') {
        
$this->row = mysql_fetch_row($result!=''?$result:$this->result);
        return
$this->row;
    }

    
/**
     * Fetch the result of the query
     * @param  object $result_type The optional argument result_type is a constant and
     * can take the following values: MYSQL_ASSOC, MYSQL_NUM, and MYSQL_BOTH.
     * @return object Returns the contents of the resultset, returns FALSE when all have been returned
     */
    
function fetchObject($result_type=MYSQL_ASSOC) {
        return
mysql_fetch_object($this->result, $result_type);
    }

    
/**
     * Fetch the result of the query
     * @param int $result_type The optional argument result_type is a constant and
     * can take the following values: MYSQL_ASSOC, MYSQL_NUM, and MYSQL_BOTH.
     * @return array Returns the contents of the resultset, returns FALSE when all have been returned
     */
    
function fetchArray($result_type=MYSQL_BOTH) {
        return
mysql_fetch_array($this->result, $result_type);
    }

    
/**
     * Fetch the result of the query
     * @return object Returns the contents of the resultset, returns FALSE when all have been returned
     */
    
function fetchAssoc() {
        return
mysql_fetch_assoc($this->result);
    }

    
/**
     * Returns the number of fields in the result   
     * @return int The number of fields in the result
     */
    
function getNumFields() {
        return
mysql_num_fields($this->result);
    }
    
    
/**
     * Get the name of the specified field in a result  
     * @param  int $offset The field offset to fetch
     * @return String Returns the name of the specified field index
     */
    
function getFieldName($offset) {
        
$rc = mysql_field_name($this->result,$offset);
        return
$rc===false?'':$rc;
    }

    
/**
     * Get the length of the specified field
     * @param  int $offset The field offset to fetch
     * @return int Returns the length of the specified field
     */
    
function getFieldLen($offset) {
        
$rc = mysql_field_len($this->result,$offset);
        return
$rc===false?'':$rc;
    }

    
/**
     * Get the type of the specified field in a result   
     * @param  int $offset The field offset to fetch
     * @return String Returns the field type and will be one of
     * "int", "real", "string", "blob", ...
     */
    
function getFieldType($offset) {
        
$rc = mysql_field_type($this->result,$offset);
        return
$rc===false?'':$rc;
    }

    
/**
     * Get the flags associated with the specified field in a result
     * The flags are reported as an array of words per flag separated by a single space,
     * @param  int $offset The field offset to fetch
     * @return array Returns an array of the field flags or FALSE on failure
     */
    
function getFieldFlags($offset) {
        
$rc = mysql_field_flags($this->result,$offset);
        return
$rc===false?'':explode(' ',$rc);
    }

    
/**
     * Get name of the table the specified field is in  
     * @param  String $offset The field offset to fetch
     * @return String Returns the name of the table that the specifed field is in
     */
    
function getFieldTable($offset) {
        
$rc = mysql_field_table($this->result,$offset);
        return
$rc===false?'':$rc;
    }
}
?>

HTML source code

Den fulde HTML kildekode for Database klassen

<?
ERROR
, Database->getHtml() ***   ABSTRACT  ***  You MUST implement this<br />

?>

Class methods

Her er 'klasse metoderne' for Database klassen:

  • database
  • query
  • getinsertid
  • getaffectedrows
  • getnumrows
  • fetchrow
  • fetchobject
  • fetcharray
  • fetchassoc
  • getnumfields
  • getfieldname
  • getfieldlen
  • getfieldtype
  • getfieldflags
  • getfieldtable
  • object
  • getclassname
  • getmsg
  • addhtml
  • gethtml
  • tostring
  • getcachefilename
  • save
  • content
  • stop
  • databasecommon
  • set
  • freeresult
  • geterror
  • open
  • close

Object vars

Her er 'objekt variable' for Database klassen:

  • affectedRows => 0
  • numRows => 0
  • row =>
  • sql =>
  • error =>
  • html =>
  • connection => Object
  • result =>

Database

Vis denne side på danmark

Vis denne side på Germany

Vis denne side på England

Vis denne side på France

Vis denne side på Italy

Vis denne side på Norge

Vis denne side på Sverige

Vis denne side på USA


 
Database