Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * (C) 2007 Daniel Moss (Acidic32)
- * Created for Intvag/VFSN.net
- *
- * DO NOT REMOVE THIS NOTICE
- */
- class Database {
- var $server = "localhost"; //database server
- var $user = "user"; //database login name
- var $pass = "pass"; //database login password
- var $database = "db"; //database name
- var $pre = ""; //table prefix
- #######################
- //internal info
- var $record = array();
- var $error = "";
- var $errno = 0;
- //table name affected by SQL query
- var $field_table= "";
- //number of rows affected by SQL query
- var $affected_rows = 0;
- var $link_id = 0;
- var $query_id = 0;
- #-#############################################
- # desc: constructor
- function Database($server, $user, $pass, $database, $pre=''){
- $this->server=$server;
- $this->user=$user;
- $this->pass=$pass;
- $this->database=$database;
- $this->pre=$pre;
- }#-#constructor()
- #-#############################################
- # desc: connect and select database using vars above
- # Param: $new_link can force connect() to open a new link, even if mysql_connect() was called before with the same parameters
- function connect($new_link=false) {
- $this->link_id=@mysql_connect($this->server,$this->user,$this->pass,$new_link);
- if (!$this->link_id) {//open failed
- $this->oops("Could not connect to server: <b>$this->server</b>.");
- }
- if(!@mysql_select_db($this->database, $this->link_id)) {//no database
- $this->oops("Could not open database: <b>$this->database</b>.");
- }
- // unset the data so it can't be dumped
- $this->server='';
- $this->user='';
- $this->pass='';
- $this->database='';
- }#-#connect()
- #-#############################################
- # desc: close the connection
- function close() {
- if(!mysql_close($this->link_id)){
- $this->oops("Connection close failed.");
- }
- }#-#close()
- #-#############################################
- # Desc: escapes characters to be mysql ready
- # Param: string
- # returns: string
- function escape($string) {
- if(get_magic_quotes_gpc()) $string = stripslashes($string);
- return mysql_real_escape_string($string);
- }#-#escape()
- #-#############################################
- # Desc: escapes characters to be mysql ready
- # Param: string
- # returns: string
- function post_escape($string) {
- return mysql_real_escape_string(strip_tags(trim($string)));
- }#-#post_escape()
- #-#########################################
- # Basic Routines
- #-#########################################
- #-#############################################
- # Desc: executes SQL query to an open connection
- # Param: (MySQL query) to execute
- # returns: (query_id) for fetching results etc
- function query($sql) {
- // do query
- $this->query_id = @mysql_query($sql, $this->link_id);
- if (!$this->query_id) {
- $this->oops("<b>MySQL Query fail:</b> $sql");
- }
- $this->affected_rows = @mysql_affected_rows();
- return $this->query_id;
- }#-#query()
- #-#############################################
- # desc: fetches and returns results one line at a time
- # param: query_id for mysql run. if none specified, last used
- # return: (array) fetched record(s)
- function fetch_array($query_id=-1) {
- // retrieve row
- if ($query_id!=-1) {
- $this->query_id=$query_id;
- }
- if (isset($this->query_id)) {
- $this->record = @mysql_fetch_assoc($this->query_id);
- }else{
- $this->oops("Invalid query_id: <b>$this->query_id</b>. Records could not be fetched.");
- }
- // unescape records
- if($this->record){
- $this->record=array_map("stripslashes", $this->record);
- //foreach($this->record as $key=>$val) {
- // $this->record[$key]=stripslashes($val);
- //}
- }
- return $this->record;
- }#-#fetch_array()
- #-#############################################
- # desc: does an update query with an array
- # param: table (no prefix), assoc array with data (doesn't need escaped), where condition
- # returns: (query_id) for fetching results etc
- function query_update($table, $data, $where='1') {
- $q="UPDATE `".$this->pre.$table."` SET ";
- foreach($data as $key=>$val) {
- if(strtolower($val)=='null') $q.= "`$key` = NULL, ";
- elseif(strtolower($val)=='now()') $q.= "`$key` = NOW(), ";
- else $q.= "`$key`='".$this->escape($val)."', ";
- }
- $q = rtrim($q, ', ') . ' WHERE '.$where.';';
- return $this->query($q);
- }#-#query_update()
- #-#############################################
- # desc: does an insert query with an array
- # param: table (no prefix), assoc array with data
- # returns: id of inserted record, false if error
- function query_insert($table, $data) {
- $q="INSERT INTO `".$this->pre.$table."` ";
- $v=''; $n='';
- foreach($data as $key=>$val) {
- $n.="`$key`, ";
- if(strtolower($val)=='null') $v.="NULL, ";
- elseif(strtolower($val)=='now()') $v.="NOW(), ";
- else $v.= "'".$this->escape($val)."', ";
- }
- $q .= "(". rtrim($n, ', ') .") VALUES (". rtrim($v, ', ') .");";
- if($this->query($q)){
- //$this->free_result();
- return mysql_insert_id();
- }
- else return false;
- }#-#query_insert()
- #-#########################################
- # INTVAG Routines
- #-########################################
- #-#############################################
- # desc: throw an error message
- # param: [optional] any custom error to display
- function oops($msg='') {
- if($this->link_id>0){
- $this->error=mysql_error($this->link_id);
- $this->errno=mysql_errno($this->link_id);
- }
- else{
- $this->error=mysql_error();
- $this->errno=mysql_errno();
- }
- ?>
- <table align="center" border="1" cellspacing="0" style="background:white;color:black;width:80%;">
- <tr><th colspan=2>Database Error</th></tr>
- <tr><td align="right" valign="top">Message:</td><td><?php echo $msg; ?></td></tr>
- <?php if(strlen($this->error)>0) echo '<tr><td align="right" valign="top" nowrap>MySQL Error:</td><td>'.$this->error.'</td></tr>'; ?>
- <tr><td align="right">Date:</td><td><?php echo date("l, F j, Y \a\\t g:i:s A"); ?></td></tr>
- <tr><td align="right">Script:</td><td><a href="<?php echo @$_SERVER['REQUEST_URI']; ?>"><?php echo @$_SERVER['REQUEST_URI'];
- ?></a></td></tr>
- <?php if(strlen(@$_SERVER['HTTP_REFERER'])>0) echo '<tr><td align="right">Referer:</td><td><a
- href="'.@$_SERVER['HTTP_REFERER'].'">'.@$_SERVER['HTTP_REFERER'].'</a></td></tr>'; ?>
- </table>
- <?php
- }#-#oops()
- }//CLASS Database
- ###################################################################################################
- ?>
Add Comment
Please, Sign In to add comment