Files
wnmj/GonghuiWeb/class/myConn.php

463 lines
14 KiB
PHP
Raw Normal View History

2026-02-24 09:25:17 +08:00
<?php
class myConn extends myInc{
var $error_log = [];
var $query_id;
var $num_rows;
function __construct($connname=''){ //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$this->connname=$connname;
}
function query($sql){
$stmt = sqlsrv_query($this->link, $sql);
if($stmt === false) {
$this->error_log[] = sqlsrv_errors();
}else{
$this->query_id = $stmt;
}
}
function fetch_all($sql){
$this->query($sql);
$data = [];
while($row = @sqlsrv_fetch_array($this->query_id,SQLSRV_FETCH_ASSOC)) {
$data[] = $row;
}
return $data;
}
function fetch_one($sql){
$this->query($sql);
return sqlsrv_fetch_array($this->query_id,SQLSRV_FETCH_ASSOC);
}
function fetch_abc($sql){
$count=$this->fetch_one($sql);
return current($count);
}
function affectedRows() {
return ($this->query_id) ? @sqlsrv_fetch_row($this->query_id) : false;
}
function update($table,$field,$where,$conn=''){//<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD>ݿ<EFBFBD>
if($conn) $this->links($conn);
if(is_array($field)){
foreach ($field as $key => $value){
$sqlud.=$key."='".$value."',";
}
$sql="UPDATE $table SET ".substr($sqlud,0,-1)." WHERE $where ";
}else{
$sql="UPDATE $table SET $field WHERE $where ";
}
return $this->query($sql);
if($conn) $this->close();
}
function insert($table,$field,$date='',$conn=''){//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD> $date Ϊ<>գ<EFBFBD> $fieldΪ<64><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if($conn) $this->links($conn);
if($date){
$sql="INSERT INTO $table ($field) VALUES ($date)";
}else{
foreach($field as $key => $value){
$sqlfield.= $key.",";
$sqlvalue.= "'".$value."',";
}
$sql="INSERT INTO $table (".substr($sqlfield,0,-1).") VALUES (".substr($sqlvalue,0,-1).")";
}
//echo $sql;
return $this->query($sql);
if($conn) $this->close();
}
function deldate($table,$where,$conn=''){//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
if($conn) $this->links($conn);
$sql="DELETE FROM ".$table." WHERE ".$where." ";
$rs=$this->query($sql);
return sqlsrv_query($rs);
if($conn) $this->close();
}
//<2F><>ҳ ע<><D7A2>һ<EFBFBD><D2BB>Ҫ order by
//public function page($sql,$pkey,$table,$order='asc',$pageSize=10,$linkNum=7,$page=1,$conn=''){
public function page($info){
if(!$info['sql'] || !$info['key'] || !$info['table']){
return '';
}
if($info['conn']) $this->links($info['conn']);
$info['page'] = is_numeric($info['page']) ? $info['page'] : 1;
$info['pageSize'] = is_numeric($info['pageSize']) ? $info['pageSize'] : 10;
$info['linkNum'] = is_numeric($info['linkNum']) ? $info['linkNum'] : 7;
if(!$info['count']){
$info['count'] = "select count(*) from (".str_replace(strrchr($info['sql'],"order"),"",$info['sql']).") tmptable";
}
$totalNum = $this->fetch_abc($info['count']);//<2F><><EFBFBD><EFBFBD>
$maxPage = (int)ceil($totalNum/$info['pageSize']);//<2F><>ҳ<EFBFBD><D2B3>
$info['page'] = $info['page']>$maxPage ? $maxPage : $info['page'];
$num = ($info['page']-1)*$info['pageSize'];
$num = $num<0 ? 0 : $num;
//echo $info['count']."<br><br><br>".$totalNum."<br>".$num."<br><br>";
$sql=str_replace("select ","select top ".$info['pageSize']." ",$info['sql']);
if(strstr($sql,' where ')){
if(strstr(strtolower($sql),' left join ')){
$sql=str_replace(" where "," where a.".$info['key']." not in(select top ".$num." ".$info['key']." from ".$info['table']." ".$info['where']." order by ".$info['order'].") and ",$sql);
}else{
$sql=str_replace(" where "," where ".$info['key']." not in(select top ".$num." ".$info['key']." from ".$info['table']." ".$info['where.']." order by ".$info['order'].") and ",$sql);
}
}else{
if(strstr(strtolower($sql),' left join ')){
if(strstr($sql,' group by ')){
$sql=str_replace(" group by "," where a.".$info['key']." not in(select top ".$num." ".$info['key']." from ".$info['table']." order by ".$info['order'].") group by ",$sql);
}else{
$sql=str_replace(" order by "," where a.".$info['key']." not in(select top ".$num." ".$info['key']." from ".$info['table']." order by ".$info['order'].") order by ",$sql);
}
}else{
$sql=str_replace(" order "," where ".$info['key']." not in(select top ".$num." ".$info['key']." from ".$info['table']." order by ".$info['order'].") order ",$sql);
}
}
//echo $sql."<br><br><br>";
$data = $this->fetch_all($sql);
return ['data'=>$data,'page'=>[
"page"=>$info['page'],
"start"=>($info['page']-round($info['linkNum']/2))>0 ? ($info['page']-round($info['linkNum']/2)) : "1",
"end"=>($info['page']+round($info['linkNum']/2))<$maxPage ? ($info['page']+round($info['linkNum']/2)) : $maxPage,
"maxPage"=>$maxPage,
"pageSize"=>$info['pageSize'], //ÿҳ<C3BF><D2B3>ʾ
"linkNum"=>$info['linkNum'], //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
"totalNum"=>$totalNum //<2F><><EFBFBD><EFBFBD>
]];
if($conn) $this->close();
}
// <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
function str_substr($start, $end, $str){
$temp = explode($start, $str, 2);
$content = explode($end, $temp[1], 2);
return $content[0];
}
function getfetch($rs,$rr=''){
if($rr=='assoc'){
return @mssql_fetch_assoc($rs);
}elseif($rr=='row'){
return @mssql_fetch_row($rs);
}else{
return @mssql_fetch_array($rs);
}
}
function rscount($rs){ //<2F><>ȡrs<72><73><EFBFBD><EFBFBD>
return mssql_num_rows($rs);
}
function getcount($sql,$hit=0,$conn=''){ //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
if($conn) $this->links($conn);
return @mssql_num_rows($this->query($sql))+$hit;
if($conn) $this->close();
}
function getcounts($field,$table,$where,$hit=0,$conn=''){ //<2F><>ȡ<EFBFBD>ֶ<EFBFBD><D6B6>ܺ<EFBFBD><DCBA><EFBFBD>
if($conn) $this->links($conn);
$rs=$this->query("select sum($field) from $table where $where");
$row=$this->getfetch($rs);
return $row[0]+$hit;
if($conn) $this->close();
}
function getdy($field,$table,$where,$order='',$rr='',$conn=''){//һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if($conn) $this->links($conn);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
$sql="select $field from $table ";
if($where){ $sql.="WHERE $where "; }
if($order){ $sql.=" order by $order "; }
$rs=$this->query($sql);
$row=$this->getfetch($rs,$rr);
if(preg_match('/[,*]/i',$field)){
return $row;
}else{
return $row[0];
}
unset($sql,$rs,$row);
if($conn) $this->close();//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>ݿ<EFBFBD>
}
function getloop($field,$table,$where,$order='',$num=0,$rr='',$conn=''){//һ<><D2BB>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if($conn) $this->links($conn);
$sql="select $field from $table ";
if($where){ $sql.=" WHERE $where "; }
if($order){ $sql.=" order by $order "; }
$rs=$this->query($sql);
$rot=array();
if(!$num){ $num=$this->rscount($rs);}
for($p=0;$p<$num;$p++){
$row=$this->getfetch($rs,$rr);
if($row) $rot[]=$row;
}
return $rot;
unset($sql,$rs,$row,$rot);
if($conn) $this->close();
}
function getloops($sql,$conn=''){//һ<><D2BB>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if($conn) $this->links($conn);
$rs=$this->query($sql);
$rot=array();
if(!$num){ $num=$this->rscount($rs);}
for($p=0;$p<$num;$p++){
$row=$this->getfetch($rs,$rr);
if($row) $rot[]=$row;
}
return $rot;
unset($sql,$rs,$row,$rot);
if($conn) $this->close();
}
function getgl($gg,$str){//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$strs=explode(',',$str);
foreach($strs as $value){
unset($gg[$value]);
}
return $gg;
}
function getxz($str,$x,$d=0){//<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$s = (strlen($str)+mb_strlen($str,'utf8'))/2;
if($d){
if($s>=$x && $s<=$d) return $str;
}else{
if($s>=$x) return $str;
}
}
//ȫ<>ֺ<EFBFBD><D6BA><EFBFBD> $ts <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA> | 0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1=num user az tel mail 2=<3D>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>С 3<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4=1Сд2<D0B4><32>д 5=1<><31><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>
//$post=$myConn->getpost($_POST,"a|user,b|0|3|12|2|gbk|utf-8,c|0|0|0|2");
//<2F><> a Ϊ<><CEAA><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ֻ<><D6BB>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
function getpost($str,$ts='',$key=''){
if(is_array($str)){
foreach($str as $key => $val){
$str[$key] = $this->getpost($val,$ts,$key);
}
}else{
$str=trim($str);
if($ts && $key){//<2F><><EFBFBD><EFBFBD> $key <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(is_array($ts)){
$i=0;
foreach($ts as $keys => $vals){
if($i) $tss.=",";
$tss.=$keys."|".$vals;
$i++;
}
$ts=$tss;
}
$tsa=explode(",",$ts);
for($i=0;$i<count($tsa);$i++){
$tsb=explode("|",$tsa[$i]);
$ts_name=$tsb[0];//<2F><>Ҫת<D2AA><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if($key==$ts_name){
$ts_type=$tsb[1];//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> num user az tel mail
$ts_small=$tsb[2];//<2F><>С<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
$ts_big=$tsb[3];//<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
$ts_size=$tsb[4];//<2F><>Сдת<D0B4><D7AA> 1 Сд 2<><32>д
$ts_bma=$tsb[5];//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA> gbk
$ts_bmb=$tsb[6];//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA> utf-8
if($ts_bma && $ts_bmb){//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
$str=iconv($ts_bma,$ts_bmb,$str);
}
if($ts_type=='num' || $ts_type==1){//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
if(!preg_match('/^[0-9]+$/i',$str)) $str=0;
}elseif($ts_type=='user' || $ts_type==2){//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ж<EFBFBD>
if(!preg_match('/^[0-9a-z_-]+$/i',$str)) $str=0;
}elseif($ts_type=='tel' || $ts_type==3){//<2F><EFBFBD>ж<EFBFBD>
if(!preg_match('/^[0-9+-]+$/i',$str)) $str=0;
}elseif($ts_type=='mail' || $ts_type==5){//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
if(!preg_match("/^[a-z0-9\._-]{1,}@[a-z0-9-]{1,}\.[a-z\.]{1,}$/i",$str)) $str=0;
}elseif($ts_type=='az' || $ts_type==4){//<2F><>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD>
if(!preg_match('/^[a-z]+$/i',$str)) $str=0;
}else{//<2F>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
$str=$this->getre($str);
}
if($ts_small){//<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
$str=$this->getxz($str,$ts_small,$ts_big);
}
if($ts_size==1){//<2F><>Сдת<D0B4><D7AA>
$str=strtolower($str);
}elseif($ts_size==2){
$str=strtoupper($str);
}
}
}
}else{
$str=$this->getre($str);
}
}
return $str;
}
function getarray($str,$b='|'){//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA> $str Ϊ<><CEAA><EFBFBD><EFBFBD> $b=| Ϊ $str="a|b|c";
if(is_array($str)){
$i=0;
$b=iconv('gbk','utf-8',$b);
foreach($str as $key=>$val){
if($i) $string.=$b;
$string.=$val;
$i++;
}
return $string;
}else{
return $str;
}
}
function getre($str){ //<2F><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
$str=str_replace(";", "&#59;", $str);
$str=str_replace("<", "&lt;", $str);
$str=str_replace(">", "&gt;", $str);
$str=str_replace("\"", "&quot;", $str);
$str=str_replace("'", "&#8242;", $str);
$str=str_replace("\\", "", $str);
return $str;
}
function getbm($str,$ba="gbk",$bb="utf-8"){//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
return iconv($ba,$bb,$str);
}
function getip(){ //IP
static $realip;
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
}else{
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if(getenv("HTTP_X_FORWARDED_FOR")){
$realip = getenv("HTTP_X_FORWARDED_FOR");
}else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
}else{
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}
function treat($original,$history){//<2F><>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ<D6B5>գ<EFBFBD><D5A3><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>ֵ<EFBFBD>ԭ<EEB2B9><D4AD><EFBFBD><EFBFBD>
foreach($original as $key=>$val){
if($val || $val=='0'){
$array[$key]=$val;
}else{
$array[$key]=$history[$key];
}
}
return $array;
}
function randmm($len){//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$srcstr="0123456789";
mt_srand();
$strs="";
for($i=0;$i<$len;$i++){
$strs.=$srcstr[mt_rand(0,9)];
}
return $strs;
}
function randhz($len,$size=0){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$srcstr="abcdefghijklmnopqrstuvwxyz0123456789";
mt_srand();
$strs="";
for($i=0;$i<$len;$i++){
$strs.=$srcstr[mt_rand(0,35)];
}
if($size){
return strtoupper($strs);
}else{
return $strs;
}
}
function fileHz($a){//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>׺
$c=strrchr($a,'.');
if($c){
return strtolower($c);//ת<><D7AA>Сд
}else{
return '';
}
}
function createFolder($path) {//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
if (!file_exists($path)) {
$this->createFolder(dirname($path));
mkdir($path, 0777);
}
}
function filesize($size,$s=2,$h=0){
if($h) $size=$size*$h;
if($size<=1024) {
return $size.'B';
}elseif($size<=(1024*1024)){
$size=$size/1024;
return number_format($size,$s).'KB';
}elseif($size<=(1024*1024*1024)){
$size=$size/1024/1024;
return number_format($size,$s).'MB';
}else{
$size=$size/1024/1024/1024;
return number_format($size,$s).'GB';
}
}
function array_sort($arr,$keys,$type='desc'){ //<2F><>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$keysvalue = $new_array = array();
foreach ($arr as $k=>$v){
$keysvalue[$k] = $v[$keys];
}
if($type == 'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
}
reset($keysvalue);
$i=0;
foreach ($keysvalue as $k=>$v){
$new_array[$i++] = $arr[$k];
}
return $new_array;
}
function is_utf8($word){//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>UTF8<46><38><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if(preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word) == true){
return 'utf-8';
}else{
return 'gb2312';
}
}
function file_get_nr($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
return curl_exec($ch);
curl_close($ch);
}
function link_so(){
$flag = 0;
$tmp = $_SERVER['HTTP_USER_AGENT'];
if(strpos($tmp, 'Googlebot') !== false){
$flag = 1;
} else if(strpos($tmp, 'Baiduspider') >0){
$flag = 1;
} else if(strpos($tmp, 'Yahoo! Slurp') !== false){
$flag = 1;
} else if(strpos($tmp, 'msnbot') !== false){
$flag = 1;
} else if(strpos($tmp, 'Sosospider') !== false){
$flag = 1;
} else if(strpos($tmp, 'YodaoBot') !== false || strpos($tmp, 'OutfoxBot') !== false){
$flag = 1;
} else if(strpos($tmp, 'Sogou web spider') !== false || strpos($tmp, 'Sogou Orion spider') !== false){
$flag = 1;
} else if(strpos($tmp, 'fast-webcrawler') !== false){
$flag = 1;
} else if(strpos($tmp, 'Gaisbot') !== false){
$flag = 1;
} else if(strpos($tmp, 'ia_archiver') !== false){
$flag = 1;
} else if(strpos($tmp, 'altavista') !== false){
$flag = 1;
} else if(strpos($tmp, 'lycos_spider') !== false){
$flag = 1;
} else if(strpos($tmp, 'Inktomi slurp') !== false){
$flag = 1;
}
return $flag;
}
function close(){
return sqlsrv_close($this->link);
}
function __destruct(){
}
}
?>