Sådan benyttes komponenten DB2Database klassen
Først skal du inkludere den fil der beskriver komponenten, som en klasse fil
<? require_once(HTML_PACKAGE_PATH.'/DB2Database.php'); ?>
Dernæst kan du enten benytte komponenten som et taglib (statiske metoder):
<? DB2Database::display($param1, $param2, $param3, ...); ?>
eller du kan lave en instance af komponenten og benytte metoderne direkte:
<? $object = new DB2Database($param1, $param2, $param3, ...); print $object->getHtml(); ?>
Sådan vises komponenten DB2Database klassen
Den fulde PHP kildekode for DB2Database klassen
<?php/** * @package db2 * @see HTML_DB2_DATABASE_PATH.'/DB2Database.php' * @copyright (c) http://Finn-Rasmussen.com * @license http://Finn-Rasmussen.com/license/ myPHP License conditions * @author http://Finn-Rasmussen.com * @version 1.11 * @since 27-nov-2009 *//** * The required files */require_once(HTML_DB_DATABASE_PATH.'/DatabaseCommon.php');require_once(HTML_DB2_DATABASE_PATH.'/DB2Connection.php');require_once(HTML_BASIC_UTIL_PATH.'/Message.php');if (defined('HTML_LOG_UTIL_PATH')) { require_once(HTML_LOG_UTIL_PATH.'/Log.php');}/** * The interface towards the DB2 database * The interface use an advanced sql caching methode * <code> * Usage: * $myDb = new DB2Database(); * $myDb->open(); // Open a connection to the database * : * $myDb->doSomeThing() // Use the connection object to operate on table data * : * $myDb->close(); // Close the connection * </code> * @package db2 */class DB2Database extends DatabaseCommon { /** * @var int $affectedRows The Number of rows affected by the drop, insert, update etc. */ protected $affectedRows = 0; /** * @var int $numRows Number of rows returned from a select,explain, etc. query */ protected $numRows = 0; /** * @var int $row The row returned */ protected $row = NULL; /** * @var String $sql The query */ protected $sql = ''; /** * Constructor */ function __construct() { parent::__construct(CLASS_NAME_DB2_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($msg, __FILE__, __LINE__); } else { if (defined('DEBUG_LEVEL_SHOW_SQL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) { Message::add($msg, __FILE__, __LINE__); } } $this->connection->close(); return $rc; } $this->result = db2_exec($con, $sql, array('cursor' => DB2_SCROLLABLE)); $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 = db2_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($msg, __FILE__, __LINE__); } else { if (defined('DEBUG_LEVEL_SHOW_SQL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) { Message::add($msg, __FILE__, __LINE__); } } } else { $msg = $this->getClassName().'->query(), FAILED, sql='.$sql; if (defined('HTML_LOG_UTIL_PATH')) { Log::query($msg, __FILE__, __LINE__); } else { if (defined('DEBUG_LEVEL_SHOW_SQL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) { Message::add($msg, __FILE__, __LINE__); } } if (defined('DEBUG_LEVEL_SHOW_SQL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) { Message::add($msg, __FILE__, __LINE__); } } } else { $msg = $this->getClassName().'->query(), FAILED, this->connection is NULL'; if (defined('HTML_LOG_UTIL_PATH')) { Log::fatal($msg, __FILE__, __LINE__); } else { if (defined('DEBUG_LEVEL_SHOW_SQL') && DEBUG_LEVEL & DEBUG_LEVEL_SHOW_SQL) { Message::add($msg, __FILE__, __LINE__); } } } return $rc; } /** * Returns the number of fields in the result * @return int The number of fields in the result */ function getNumFields() { return db2_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 = db2_field_name($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 = db2_field_type($this->result, $offset); return $rc===false?'':$rc; } /** * Get the type of the specified field in a result * @todo NOT SUPPORTED * @param int $offset The field offset to fetch * @return String Returns the field flags */ function getFieldFlags($offset) { $rc = ''; // NO SUPPORT db2_field_flags($this->result, $offset); // @todo see ../test/HelloWorld.php return $rc===false?'':$rc; } /** * Get the type of the specified field in a result * @todo NOT SUPPORTED * @param int $offset The field offset to fetch * @return String Returns the field table */ function getFieldTable($offset) { $rc = ''; // NO SUPPORT db2_field_table($this->result, $offset); // @todo see ../test/HelloWorld.php 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 = db2_field_display_size($this->result, $offset); return $rc===false?'':$rc; } /** * Fetch the result of the query * @return object Returns the contents of the resultset, returns FALSE when all have been returned */ function fetchAssoc() { return db2_fetch_assoc($this->result); } /** * 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; }}?>
Den fulde HTML kildekode for DB2Database klassen
<? Get the html for the DB2Database object<br /> ?>
Her er 'klasse metoderne' for DB2Database klassen:
Her er 'objekt variable' for DB2Database klassen: