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'); } }?>