All pastes #963057 Raw Edit

db.php

public php v1 · immutable
#963057 ·published 2008-03-30 05:42 UTC
rendered paste body
<?php	/**	 * Name:		NULL-DBW	 * Version:		1.0	 * Description:	A database wrapper by NULL Byte Design	 * Site:		<http://thenullbye.org>	 * Author:		<josh@thenullbyte.org>	 */		/**	 * @support MySQL Database	 * @table InnoDB or Gemini are recommended	 */		class DB	{		/**		 * @access private		 * @var object $db_obj		 * @var string $database		 * @var mixed $error		 * @var mixed $sql		 */		var $db_obj;		var $database;		var $error;		var $sql;				/**		 * @param string $database		 */		function DB($database)		{			$this->db_obj = NULL;			$this->database = $database;			$this->error = mysql_error();			$this->sql = '';		}				/**		 * @return TRUE on connect		 * @param string $dbhost		 * @param string $dbuser		 * @param string $dbpass		 */		function connect($dbhost, $dbuser, $dbpass)		{			if(($db = mysql_connect($dbhost, $dbuser, $dbpass)) === FALSE)			{				trigger_error("Could not connect to database server: ". $this->error);				return FALSE;			}						if(mysql_select_db($this->database, $db) === FALSE)			{				trigger_error("Could not select database: ". $this->error());				return FALSE;			}						$this->db_obj =& $db;			return TRUE;		}				/**		 * @return TRUE if connected		 */		function isConnected()		{			return $this->db_obj !== FALSE;		}				/**		 * @return FALSE		 */		function disconnect()		{			if($this->isConnected())			{				mysql_close($this->db_obj);				$this->db_obj = FALSE;			}		}				/**		 * @param mixed $sql		 */		function prepare($sql)		{			$this->sql =& $sql;		}				/**		 * @return mixed array		 * @param string $sql		 * @param mixed $args		 */		function ProcessQuery($sql, $args='')		{			if(!is_array($args))			{				$args = array($args);			}					$array = explode('?', $sql, sizeof($args));			if(sizeof($array) != sizeof($args))			{				trigger_error("Error: $sql {$args[0]}", E_USER_WARNING);				return FALSE;			}					ksort($args);			$array = explode('?', $sql);			for($i = 0; $i < sizeof($args); ++$i)			{				$array[$i] .= mysql_real_escape_string($args[$i]);			}			return implode('', $array);		}				/**		 * @return mixed array		 * @param string $sql		 * @param mixed $args		 */		function row($sql, $args='')		{			if($args)			{				if(!is_array($args))				{					$args = array($args);				}								$sql = $this->ProcessQuery($sql, $args);			}			$sql = $this->ProcessQuery($sql);			if(($results = mysql_query($sql)) === FALSE)			{				trigger_error("There was an error processing yor query: ". $this->error);				return FALSE;			}						$data = mysql_fetch_assoc($results);			return $data;		}				/**		 * @return int number of rows		 * @param string $sql		 * @param mixed $args		 */		function execute($sql, $args='')		{			if($args)			{				if(!is_array($args))				{					$args = array($args);				}								$sql = $this->ProcessQuery($sql, $args);			}			if(mysql_query($sql) === FALSE)			{				trigger_error("There was an error processing your query: ". $this->error);				return FALSE;			}			return mysql_affected_rows($this->db_obj);		}				/**		 * @return int num rows		 * @param mixed $args		 */		function send($args='')		{			if(!$this->sql)			{				trigger_error("There was an error processing your query: ". $this->error);				return FALSE;			}							if(!is_array($args))			{				$args = array($args);			}			return $this->execute($this->sql, $args);		}			/**		 * @return mixed array		 * @param string $sql		 * @param mixed $args		 */		function Query($sql, $args='')		{			if($args)			{				if(!is_array($args))				{					$args = array($args);				}							if(is_array($args))				{					$sql = $this->ProcessQuery($sql, $args);				}			}			if(($result = mysql_query($sql, $this->db_obj)) === FALSE)			{				trigger_error("There was an error processing your query:". $this->error);				return FALSE;			}						$data = array();			while($row = mysql_fetch_assoc($result))			{				$data[] = $row;			}						return $data;		}						/**		 * Transaction Functions		 * @return who knows		 */				function StartTransaction()		{			return mysql_query('BEGIN WORK');		}				function RollbackTransaction()		{			return mysql_query('ROLLBACK');		}				function CommitTransaction()		{			return mysql_query('COMMIT');		}	}?>