Return to Snippet

Revision: 6467
at May 22, 2008 10:25 by mattkenefick


Initial Code
<?php 
/**************************************
 seesaw associates | http://seesaw.net

 client: 		mysql
 file: 			class.mysql.php
 description: 	handles mysql paging

 Copyright (C) 2008 Matt Kenefick(.com)
**************************************/

class DB{
	var $host;
	var $user_name;
	var $password;
	var $db_name;
	
	var $link_id;
	var $result;
	var $col;
	var $query;
	var $fields;
	var $records;
	var $setting;
	
	var $debug = false;
	var $query_count = 0;
	var $debug_file = "debug.sql";
	
	function settings($key,$value){
		$this->setting[$key] = $value;
	}

	function init($_host, $_user, $_password, $_db_name){
		$this->host = $_host;
		$this->user_name = $_user;
		$this->password = $_password;
		$this->db_name = $_db_name;
		$this->fields = array();
		
		$this->link_id = @mysql_connect($_host, $_user, $_password) or die("Your website is not properly installed.");
		@mysql_select_db($_db_name, $this->link_id);
	}
	
	function assign($field, $value){
		$this->fields[$field] = ($value)==""?("'".$value."'"):$value;
	}
	function assign_str($field, $value){
		$this->fields[$field] = "'".addslashes($value)."'";
		//$this->fields[$field] = "'".($value)."'";
	}
	
	function reset(){
		$this->fields = array();
	}
	function insert($table){
		$f = "";
		$v = "";
		reset($this->fields);
		foreach($this->fields as $field=>$value){
			$f.= ($f!=""?", ":"").$field;
			$v.= ($v!=""?", ":"").$value;
		}
		$sql = "INSERT INTO ".$table." (".$f.") VALUES (".$v.")";
		$this->query($sql);
		return $this->insert_id();
	}
	
	function update($table, $where){
		$f = "";
		reset($this->fields);
		foreach($this->fields as $field=>$value){
			$f.= ($f!=""?", ":"").$field." = ".$value;
		}
		$sql = "UPDATE ".$table." SET ".$f." ".$where;
		$this->query($sql);
	}
	
	function timestampFormat($unixNumber){
		return date('Y-m-d H:i:s',$unixNumber);
		///      xxxx-xx-xx xx-xx-xx
	}
	
	function query($_query){
		list($usec, $sec) = explode(" ",microtime());
		$time_start  = ((float)$usec + (float)$sec);
		
		$this->query = $_query;
		$this->result = @mysql_query($_query, $this->link_id) or die( $_query."<p>".mysql_error($this->link_id) );
		
		list($usec, $sec) = explode(" ",microtime());
		$time_end  =  ((float)$usec + (float)$sec);
		$time = $time_end - $time_start;

		if($this->debug){
			$this->query_count ++;
			$f = fopen($this->debug_file, "a");
			$sss = "# ".$this->query_count."\n ".$time." sec \n\n".$_query."\n#-------------------------------------------------------------------------\n\n";
			fputs($f, $sss, strlen($sss));
			fclose($f);
		}
		
		return $this->result;
	}
	
	function get_records(){
		$this->records = array();
		while($row = @mysql_fetch_array($this->result, MYSQL_BOTH)){
			$this->records[count($this->records)] = $row;
		}
		reset($this->records);
		return $this->records;
	}
	
	function get_tables_status(){
		$this->query("SHOW TABLE STATUS FROM `".$this->db_name."`");
		if($this->num_rows() > 0){
			$tables = array();
			while($this->movenext()){
				$tables[$this->col["Name"]] = $this->col;
			}
			return $tables;
		}
		return false;
	}
	
	function fetch_array(){
		$this->col = @mysql_fetch_array($this->result, MYSQL_BOTH);
	}
	
	function num_rows(){
		return (int)@mysql_num_rows($this->result);
	}
	
	function fixSlashes(){
	 	if($this->col){
			foreach($this->col as $key => $value)
				$this->col[$key] = stripslashes($value);
			return $this->col;
		}
	}
		
	function movenext(){
		$this->[email protected]_fetch_array($this->result, MYSQL_ASSOC);
		if($this->setting['fixSlashes'])
			return $this->fixSlashes();
		else
			return $this->col;
	}
	
	function done(){
		@mysql_close($this->link_id);
	}
	
	function insert_id(){
		return @mysql_insert_id($this->link_id);
	}
	
	function affected_rows(){
		return @mysql_affected_rows($this->link_id);
	}
}
?>

Initial URL


Initial Description
I deleted the old one by accident trying to edit it.

Initial Title
PHP Class: MySQL DB Class

Initial Tags
mysql, database, class, php

Initial Language
PHP