<?php
if(!defined("MCR")){ exit("Hacking Attempt!"); }
class db{
public $obj = false;
public $result = false;
private $cfg;
public $count_queries = 0;
public $count_queries_real = 0;
public function __construct($host='127.0.0.1', $user='root', $pass='', $base='base', $port=3306, $core=array()){
$this->cfg = $core->cfg;
$connect = $this->connect($host, $user, $pass, $base, $port);
if(!$connect){ return; }
}
public function connect($host='127.0.0.1', $user='root', $pass='', $base='base', $port=3306){
$this->obj = @new mysqli($host, $user, $pass, $base, $port);
if(mb_strlen($this->obj->connect_error, 'UTF-8')>0){ return false; }
if($this->obj->connect_errno){ return false; }
if(!$this->obj->set_charset("utf8")){ return false; }
$this->count_queries_real = 2;
}
public function query($string){
$this->count_queries += 1;
$this->count_queries_real +=1;
$this->result = @$this->obj->query($string);
return $this->result;
}
public function affected_rows(){
return $this->obj->affected_rows;
}
public function fetch_array($query=false){
return $this->result->fetch_array();
}
public function fetch_assoc($query=false){
return $this->result->fetch_assoc();
}
public function free(){
return $this->result->free();
}
public function num_rows($query=false){
return $this->result->num_rows;
}
public function insert_id(){
return $this->obj->insert_id;
}
public function safesql($string){
return $this->obj->real_escape_string($string);
}
public function HSC($string=''){
return htmlspecialchars($string);
}
public function error(){
if(!is_null(mysqli_connect_error())){ return mysqli_connect_error(); }
if(!empty($this->obj->error)){ return $this->obj->error; }
return;
}
public function remove_fast($from="", $where=""){
if(empty($from) || empty($where)){ return false; }
$delete = $this->query("DELETE FROM `$from` WHERE $where");
if(!$delete){ return false; }
return true;
}
public function actlog($msg='', $uid=0){
if(!$this->cfg->db['log']){ return false; }
$uid = intval($uid);
$msg = $this->safesql($msg);
$date = time();
$ctables = $this->cfg->db['tables'];
$logs_f = $ctables['logs']['fields'];
$insert = $this->query("INSERT INTO `{$this->cfg->tabname('logs')}`
(`{$logs_f['uid']}`, `{$logs_f['msg']}`, `{$logs_f['date']}`)
VALUES
('$uid', '$msg', '$date')");
if(!$insert){ return false; }
return true;
}
public function update_user($user){
if(!$user->is_auth){ return false; }
$time = time();
$ctables = $this->cfg->db['tables'];
$us_f = $ctables['users']['fields'];
$update = $this->query("UPDATE `{$this->cfg->tabname('users')}`
SET `{$us_f['ip_last']}`='{$user->ip}', `{$us_f['date_last']}`='$time'
WHERE `{$us_f['id']}`='{$user->id}'");
if(!$update){ return false; }
return true;
}
}
?>