改造自discuz的MySQL查询类

 2022-10-27    368  

MySQL查询类对于很多刚刚接触MySQL数据库的新人来说可能还比较陌生,下面就为您介绍改造自discuz的MySQL查询类,希望可以让您对MySQL查询类有更多的了解。

<?php
/** 
*mysql查询类 
* 
*/ 
classdbQuery{ 
/** 
*查询总次数 
* 
*@varint 
*/ 
var$querynum=0; 
/** 
*连接句柄 
* 
*@varobject 
*/ 
var$link; 

/** 
*构造函数 
* 
*@paramstring$dbhost主机名 
*@paramstring$dbuser用户 
*@paramstring$dbpw密码 
*@paramstring$dbname数据库名 
*@paramint$pconnect是否持续连接 
*/ 
functiondbQuery($dbhost,$dbuser,$dbpw,$dbname='',$pconnect=0){ 
if($pconnect){ 
if(!$this->link=@mysql_pconnect($dbhost,$dbuser,$dbpw)){ 
$this->halt('CannotconnecttoMySQLserver'); 
} 
}else{ 
if(!$this->link=@mysql_connect($dbhost,$dbuser,$dbpw)){ 
$this->halt('CannotconnecttoMySQLserver'); 
} 
} 
if($this->version()>'4.1'){ 
global$dbcharset; 
if($dbcharset){ 
mysql_query("SETcharacter_set_connection=$dbcharset,character_set_results=$dbcharset,character_set_client=binary",$this->link); 
} 
if($this->version()>'5.0.1'){ 
mysql_query("SETsql_mode=''",$this->link); 
} 
} 
if($dbname){ 
mysql_select_db($dbname,$this->link); 
} 
} 
/** 
*选择数据库 
* 
*@paramstring$dbname 
*@return 
*/ 
functionselect_db($dbname){ 
returnmysql_select_db($dbname,$this->link); 
} 
/** 
*取出结果集中一条记录 
* 
*@paramobject$query 
*@paramint$result_type 
*@returnarray 
*/ 
functionfetch_array($query,$result_type=MYSQL_ASSOC){ 
returnmysql_fetch_array($query,$result_type); 
} 

/** 
*查询SQL 
* 
*@paramstring$sql 
*@paramstring$type 
*@returnobject 
*/ 
functionquery($sql,$type=''){ 

$func=$type=='UNBUFFERED'&&@function_exists('mysql_unbuffered_query')? 
'mysql_unbuffered_query':'mysql_query'; 
if(!($query=$func($sql,$this->link))&&$type!='SILENT'){ 
$this->halt('MySQLQueryError',$sql); 
} 
$this->querynum++; 
return$query; 
} 
/** 
*取影响条数 
* 
*@returnint 
*/ 
functionaffected_rows(){ 
returnmysql_affected_rows($this->link); 
} 
/** 
*返回错误信息 
* 
*@returnarray 
*/ 
functionerror(){ 
return(($this->link)?mysql_error($this->link):mysql_error()); 
} 
/** 
*返回错误代码 
* 
*@returnint 
*/ 
functionerrno(){ 
returnintval(($this->link)?mysql_errno($this->link):mysql_errno()); 
} 
/** 
*返回查询结果 
* 
*@paramobject$query 
*@paramstring$row 
*@returnmixed 
*/ 
functionresult($query,$row){ 
$query=@mysql_result($query,$row); 
return$query; 
} 
/** 
*结果条数 
* 
*@paramobject$query 
*@returnint 
*/ 
functionnum_rows($query){ 
$query=mysql_num_rows($query); 
return$query; 
} 
/** 
*取字段总数 
* 
*@paramobject$query 
*@returnint 
*/ 
functionnum_fields($query){ 
returnmysql_num_fields($query); 
} 
/** 
*释放结果集 
* 
*@paramobject$query 
*@returnbool 
*/ 
functionfree_result($query){ 
returnmysql_free_result($query); 
} 
/** 
*返回自增ID 
* 
*@returnint 
*/ 
functioninsert_id(){ 
return($id=mysql_insert_id($this->link))>=0?$id:$this->result($this->query("SELECTlast_insert_id()"),0); 
} 
/** 
*从结果集中取得一行作为枚举数组 
* 
*@paramobject$query 
*@returnarray 
*/ 
functionfetch_row($query){ 
$query=mysql_fetch_row($query); 
return$query; 
} 
/** 
*从结果集中取得列信息并作为对象返回 
* 
*@paramobject$query 
*@returnobject 
*/ 
functionfetch_fields($query){ 
returnmysql_fetch_field($query); 
} 
/** 
*返回mysql版本 
* 
*@returnstring 
*/ 
functionversion(){ 
returnmysql_get_server_info($this->link); 
} 
/** 
*关闭连接 
* 
*@returnbool 
*/ 
functionclose(){ 
returnmysql_close($this->link); 
} 
/** 
*输出错误信息 
* 
*@paramstring$message 
*@paramstring$sql 
*/ 
functionhalt($message='',$sql=''){ 
echo$message.''.$sql; 
exit; 
} 
} 
?> 

改造自discuz的MySQL查询类

  •  标签:  
  • MySQL
  •  

原文链接:https://77isp.com/post/4426.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。