$elem) { $in[$key] = mysql_real_escape_string(stripslashes($elem)); } } else { $in = mysql_real_escape_string(stripslashes($in)); } return $in; } function mySQL($err=false) { $this->DBstats = array(); $this->DBc = false; if($err === "DIE" || $err === "PRINT" || $err === "ALERT" || $err === "HIDE" || $err === "LOG") { $this->DBerror = $err; } else { $this->DBerror = "HIDE"; } $this->resetStats(); $this->cached = false; } function connect($ip,$user,$pass,$db=false) { $this->DBc = mysql_pconnect($ip,$user,$pass) or $this->error(mysql_error()); if($this->DBc && $db) { $this->database($db); } $this->resetStats(); } function database($db) { if(!$this->DBc) { return false; } mysql_select_db($db,$this->DBc) or $this->error(mysql_error()); return true; } function resetStats() { $this->DBstats['query'] = 0; $this->DBstats['error'] = 0; } function getStats() { return $this->DBstats; } function sendSQL($query,$handling="PLAIN",$buffer=false) { // can be INSERT, DELETE, UPDATE, ARRAY, NONE, PLAIN #if($this->cached !== false) { #$this->unlinkSql($this->cached); #} if(!$this->DBc) { return false; } if($buffer === false && $handling !== "PLAIN") { $res = mysql_unbuffered_query($query,$this->DBc) or $this->error(mysql_error(),$query); } else { $res = mysql_query($query,$this->DBc) or $this->error(mysql_error(),$query); } #$this->cached = $res; $this->DBstats['query']++; if($res) { if($handling === "INSERT") { $tmp = mysql_insert_id($this->DBc) or $this->error(mysql_error());; $this->unlinkSql($res); return $tmp; } elseif($handling === "DELETE" || $handling === "UPDATE") { $tmp = mysql_affected_rows($this->DBc) or $this->error(mysql_error()); $this->unlinkSql($res); return $tmp; } elseif($handling === "ARRAY") { $tmp = $this->parseSql($res); $this->unlinkSql($res); return $tmp; } elseif($handling === "NONE") { $this->unlinkSql($res); return true; } else { return $res; } //mysql_free_result($res); } else { return false; } } function unlinkSql($res) { @mysql_free_result($res); } private function parseSql($res) { $data = array(); $k = 0; while($tmp = mysql_fetch_array($res,MYSQL_ASSOC)) { $data[$k] = $tmp; $k++; } return $data; } function getNext($res) { if($res) { if($tmp = mysql_fetch_array($res,MYSQL_ASSOC)) { return $tmp; } else { return false; } } else { return false; } } private function error($error,$query = false) { $this->DBstats['error']++; if($query != false) { $error .= " -->|".$query."|<--"; } switch($this->DBerror) { case 'DIE': die($error); break; case 'PRINT': echo "
".$error."
"; break; case 'ALERT': echo ""; break; case 'LOG': logf("MySQL ERROR: ".$error); break; default: flush(); break; } } } ?>