. */ 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); } public function InsertID(){ decho("Fetching insert id for auto increment"); return mysqli_insert_id($GLOBALS['___mysqli_ston']); } } ?>