From 88d5d2af84cde0ce1107551fd2a61455e493b7c8 Mon Sep 17 00:00:00 2001 From: thirdid Date: Wed, 27 Jan 2010 03:40:33 +0000 Subject: Changing directory 'includes' -> 'include' git-svn-id: http://svn.3rd-infantry-division.org/testing/branches/Bayonet CMS v2.1@465 c5b2fb0a-d05d-0410-98c8-828840a80ff6 --- include/sql.class.php | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 include/sql.class.php (limited to 'include/sql.class.php') diff --git a/include/sql.class.php b/include/sql.class.php new file mode 100644 index 0000000..c32de63 --- /dev/null +++ b/include/sql.class.php @@ -0,0 +1,167 @@ +. + */ + +static $db_queries = 0; +static $db_connections = 0; +static $db_frees = 0; +static $db_fetches = 0; + +class Bayonet_SQL +{ + protected $hostname; + public function Connect($hostname, $username, $passwd) + { + global $db_connections; + $db_connections++; + + $this->hostname = $hostname; + + decho("Connecting ('$hostname')"); + return ($GLOBALS['___mysqli_ston'] = mysqli_connect($hostname, $username, $passwd)); + } + + public function Disconnect($link) + { + decho("Disconnecting ('$link' from '$this->hostname')"); + return mysqli_close($GLOBALS['___mysqli_ston']); + } + + public function Stat() + { + return mysqli_stat($GLOBALS['___mysqli_ston']); + } + + public function Select_db($db) + { + decho("Selecting database ('$db')"); + return mysqli_select_db($GLOBALS['___mysqli_ston'], $db); + } + + private function validResult($p_result) + { + if($this->Rows($p_result) > 0) + return true; + else + return false; + } + + public function Query($str) + { + global $db_queries; + $db_queries++; + return mysqli_query($GLOBALS['___mysqli_ston'], $str); + } + + public function Free($result) + { + global $db_frees; + $db_frees++; + @((mysqli_free_result($result) || (is_object($result) && (get_class($result) == "mysqli_result"))) ? true : false); + } + + public function Fetch($result) + { + return $this->FetchArray($result); + } + + public function FetchArray($p_result) + { + global $db_fetches; + $db_fetches++; + decho('Fetching result'); + + if(!$this->validResult($p_result)) + { + decho('Result was not valid.'); + return array(); + } + + while ($row = mysqli_fetch_array($p_result, MYSQLI_ASSOC)) + { + $result[] = $row; + } + $this->Free($p_result); + + return is_array($result) ? $result : array(); + } + + public function FetchObject($p_result, $class, $no_array = false) + { + global $db_fetches; + $db_fetches++; + + decho("Fetching object result"); + + if(!$this->validResult($p_result)) + { + decho('Result was not valid.'); + return (object)array(); + } + + while ($row = mysqli_fetch_object($p_result, $class)) + { + if($no_array == true) + (object)$result = $row; + else + (object)$result[] = $row; + } + + $this->Free($p_result); + + // TODO: Test for objects inside of $result array + if($no_array == true) { return is_object($result) ? $result : (object)$nothing; } + return is_array($result) ? $result : (object)array(); + } + + public function FetchAssoc($result) + { + return $this->FetchArray($result); + } + + public function FetchRow($p_result) + { + global $db_fetches; + $db_fetches++; + + decho("Fetching single row"); + + if(!$this->validResult($p_result)) + { + decho('Result was not valid.'); + return array(); + } + + while ($row = mysqli_fetch_assoc($p_result)) { + $result = $row; + } + + $this->Free($p_result); + + return is_array($result) ? $result : array(); + } + + public function Rows($result) + { + decho("Fetching number of rows"); + + return mysqli_num_rows($result); + } +} + +?> -- cgit