mysqli = new mysqli($host, $user, $password, $database);
if (mysqli_connect_error()) {
die('Ошибка подключения (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
}
$this->debugSql=array();
}
/*
ЗАПРОС С ВЫБОРКОЙ И ВОЗВРАТ МАССИВА, 0 ЭЛЕМЕНТ КОЛ-ВО СТРОК
*/
function QUR_SEL($sql){
$out = array();
$keyd = $this->debug_sql($sql,1);
$qur = $this->mysqli->query($sql);
$this->debug_sql($sql,2,$keyd);
if ($qur){
$kol = $qur->num_rows;
$out['err'] = false;
$out['kol'] = $kol;
if ($kol){
while($rez = $qur->fetch_assoc()){
$out['rez'][] = $rez;
}
}
}else {
$out['err'] = true;
$out['sql']=$sql;
$out['rep']='ОШИБКА БД!!!
'.$sql.'
('.$this->mysqli->errno.') '.$this->mysqli->error;
}
return $out;
}
/*
ЗАПРОС К БАЗЕ ДАННЫХ, И ВОЗВРАТ РЕЗУЛЬТАТА ЗАПРОСА
*/
function QUR($sql){
$out = array();
$qur = $this->mysqli->query($sql);
if ($qur){
$out['err']=false;
$out['id']=$this->lastinsertID();
}else{
$out['err']=true;
$out['sql']=$sql;
$out['id']=0;
$out['rep']='ОШИБКА БД!!!
'.$sql.'
('.$this->mysqli->errno.') '.$this->mysqli->error;
//echo '
'.print_r($out,1).''; $this->log($out); } return $out; } function rescape($param){ return $this->mysqli->real_escape_string($param); } function lastinsertID(){ return $this->mysqli->insert_id; } function navpage($sql,$pole='id',$pkol=20){ $out = array(); $sql = preg_replace('/SELECT(.*)FROM/is','SELECT count('.$pole.') as kol FROM',$sql); $rez = $this->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'';exit(); if(!$rez['err']) { if(strpos($sql,'GROUP')!==false){ $out['all'] = $rez['kol']; }else { $out['all'] = $rez['rez'][0]['kol']; } $out['pages'] = ceil($out['all'] / $pkol); } else { $out['all'] = 0; $out['pages'] = 0; } return $out; } function log($str){ $msg = date('H:i:s d.m.Y').'::'.$_SESSION['user']['id'].'::'.$_SESSION['user']['fio'].'::'; $msg .= print_r($str,1)."\n"; file_put_contents('dblog.txt',$msg,FILE_APPEND); } function debug_sql($sql,$t,$keyd=''){ //$file = 'debug_sqls2.csv'; ////if(file_exists($file)) unlink($file); //$key = md5(time().$sql); ////if(!isset($this->debugSql[$key])) { //if($t==1){ // $this->debugSql[$key]['sql'] = $sql; // $this->debugSql[$key]['times'][] = round(microtime(),3); // return $key; //} //if($t==2){ // $last = round(microtime(),3); // $this->debugSql[$keyd]['times'][] = $last; // $this->debugSql[$keyd]['time'] = $last - $this->debugSql[$keyd]['times'][0]; // $m1=array("\n","\r"); $m2=array(" "," "); // $str = date('H:i:s d.m.Y').';'.round($this->debugSql[$keyd]['time'],2).';"'.str_replace($m1,$m2,$sql).'";'; // $str .= '"'.$_SERVER['REMOTE_ADDR'].'";'; // $str .= '"'.$_SERVER['REQUEST_METHOD'].'";'; // $str .= '"'.$_SERVER['PHP_SELF'].'";'; // $str .= '"'.$_SERVER['argv'].'";'; // $debug_backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); // unset($debug_backtrace[0]); // $str .= '"'.json_encode($debug_backtrace,JSON_UNESCAPED_UNICODE).'";'; // $str .= '"'.json_encode($_POST,JSON_UNESCAPED_UNICODE).'";'; // file_put_contents($file,$str."\n",FILE_APPEND); // unset($this->debugSql[$keyd]); //} } } ?>