File: 1.19.3a/server/base/nats.db.inc.php (View as HTML)

  1: <?php // nats.db.inc.php -- nats db module class
  2: /* -------------------------------------------------------------
  3: This file is part of FreeNATS
  4: 
  5: FreeNATS is (C) Copyright 2008 PurplePixie Systems
  6: 
  7: FreeNATS is free software: you can redistribute it and/or modify
  8: it under the terms of the GNU General Public License as published by
  9: the Free Software Foundation, either version 3 of the License, or
 10: (at your option) any later version.
 11: 
 12: FreeNATS is distributed in the hope that it will be useful,
 13: but WITHOUT ANY WARRANTY; without even the implied warranty of
 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 15: GNU General Public License for more details.
 16: 
 17: You should have received a copy of the GNU General Public License
 18: along with Foobar.  If not, see www.gnu.org/licenses
 19: 
 20: For more information see www.purplepixie.org/freenats
 21: -------------------------------------------------------------- */
 22: 
 23: function ss($s) // safestring
 24: {
 25: 	global $NATS;
 26: 	return $NATS->DB->SafeString($s);
 27: }
 28: 
 29: class TNATS_DB
 30: 	{
 31: 	var $connected=false;
 32: 	var $sql=0;
 33: 	
 34: 	var $LastError=0;
 35: 	var $LastErrorString="";
 36: 	
 37: 	function Connect()
 38: 		{
 39: 		global $fnCfg;
 40: 		$this->sql=mysqli_connect($fnCfg['db.server'],$fnCfg['db.username'],$fnCfg['db.password'])
 41: 			or die("Cannot connect to MySQL server");
 42: 		mysqli_select_db($this->sql,$fnCfg['db.database'])
 43: 			or die("Cannot select MySQL database");
 44: 		$this->connected=true;
 45: 		return $this->sql;
 46: 		}
 47: 		
 48: 	function Disconnect()
 49: 		{
 50: 		mysqli_close($this->sql);
 51: 		$this->sql=0;
 52: 		$this->connected=false;
 53: 		}
 54: 
 55: 	function SafeString($s)
 56: 	{
 57: 		return mysqli_real_escape_string($this->sql,$s);
 58: 	}
 59: 		
 60: 	function Query($query,$debugerror=true)
 61: 		{
 62: 		global $NATS;
 63: 		if (!$this->connected) return -1;
 64: 		$result=mysqli_query($this->sql,$query);
 65: 		if ($debugerror)
 66: 			{
 67: 			// persist the last error state
 68: 			$this->LastError=mysqli_errno($this->sql);
 69: 			if ($this->LastError>0)
 70: 				{
 71: 				$this->ErrorString=mysqli_error($this->sql)." (".mysqli_errno($this->sql).")";
 72: 				}
 73: 			else $this->ErrorString="";
 74: 			}
 75: 			
 76: 		if (mysqli_errno($this->sql)>0)
 77: 			{
 78: 			$err=mysqli_error($this->sql)." (".mysqli_errno($this->sql).")";
 79: 			if (isset($NATS)&&$debugerror)
 80: 				{
 81: 				$NATS->Event("Query Failed: ".$query,2,"DB","Query");
 82: 				$NATS->Event("Query Error: ".$err,2,"DB","Query");
 83: 				}
 84: 			}
 85: 		return $result;
 86: 		}
 87: 		
 88: 	function Free(&$result)
 89: 		{
 90: 		mysqli_free_result($result);
 91: 		}
 92: 		
 93: 	function Fetch_Array(&$result)
 94: 		{
 95: 		return mysqli_fetch_array($result);
 96: 		}
 97: 		
 98: 	function Affected_Rows()
 99: 		{
100: 		return mysqli_affected_rows($this->sql);
101: 		}
102: 		
103: 	function Insert_Id()
104: 		{
105: 		return mysqli_insert_id($this->sql);
106: 		}
107: 		
108: 	function Num_Rows(&$result)
109: 		{
110: 		return mysqli_num_rows($result);
111: 		}
112: 		
113: 	function Error()
114: 		{
115: 		if ($this->LastError==0) return false;
116: 		return true;
117: 		}
118: 		
119: 	function Error_Number()
120: 		{
121: 		return $this->LastError;
122: 		}
123: 		
124: 	function Error_String()
125: 		{
126: 		return $this->ErrorString;
127: 		}
128: 	}