php mysql 数据库操作类_php mysql数据库操作类

php mysql数据库操作类

2021-01-23 15:35:093

复制代码 代码如下:

/*

*mysql数据库DB类

*@packagedb

*@authoryytcpt(无影)

*@version2008-03-27

*@copyrigthhttp://www.d5s.cn/

*/

classdb{

var$connection_id="";

var$pconnect=0;

var$shutdown_queries=array();

var$queries=array();

var$query_id="";

var$query_count=0;

var$record_row=array();

var$failed=0;

var$halt="";

var$query_log=array();

functionconnect($db_config){

if($this->pconnect){

$this->connection_id=mysql_pconnect($db_config["hostname"],$db_config["username"],$db_config["password"]);

}else{

$this->connection_id=mysql_connect($db_config["hostname"],$db_config["username"],$db_config["password"]);

}

if(!$this->connection_id){

$this->halt("CannotconnectMySQLServer");

}

if(!@mysql_select_db($db_config["database"],$this->connection_id)){

$this->halt("CannotconnectMySQLDatabase");

}

if($db_config["charset"]){

@mysql_unbuffered_query("SETNAMES'".$db_config["charset"]."'");

}

returntrue;

}

//发送SQL查询,并返回结果集

functionquery($query_id,$query_type='mysql_query'){

$this->query_id=$query_type($query_id,$this->connection_id);

$this->queries[]=$query_id;

if(!$this->query_id){

$this->halt("查询失败:\n$query_id");

}

$this->query_count++;

$this->query_log[]=$str;

return$this->query_id;

}

//发送SQL查询,并不获取和缓存结果的行

functionquery_unbuffered($sql=""){

return$this->query($sql,'mysql_unbuffered_query');

}

//从结果集中取得一行作为关联数组

functionfetch_array($sql=""){

if($sql=="")$sql=$this->query_id;

$this->record_row=@mysql_fetch_array($sql,MYSQL_ASSOC);

return$this->record_row;

}

functionshutdown_query($query_id=""){

$this->shutdown_queries[]=$query_id;

}

//取得结果集中行的数目,仅对INSERT,UPDATE或者DELETE

functionaffected_rows(){

return@mysql_affected_rows($this->connection_id);

}

//取得结果集中行的数目,仅对SELECT语句有效

functionnum_rows($query_id=""){

if($query_id=="")$query_id=$this->query_id;

return@mysql_num_rows($query_id);

}

//返回上一个MySQL操作中的错误信息的数字编码

functionget_errno(){

$this->errno=@mysql_errno($this->connection_id);

return$this->errno;

}

//取得上一步INSERT操作产生的ID

functioninsert_id(){

return@mysql_insert_id($this->connection_id);

}

//得到查询次数

functionquery_count(){

return$this->query_count;

}

//释放结果内存

functionfree_result($query_id=""){

if($query_id=="")$query_id=$this->query_id;

@mysql_free_result($query_id);

}

//关闭MySQL连接

functionclose_db(){

if($this->connection_id)return@mysql_close($this->connection_id);

}

//列出MySQL数据库中的表

functionget_table_names(){

global$db_config;

$result=mysql_list_tables($db_config["database"]);

$num_tables=@mysql_numrows($result);

for($i=0;$i

$tables[]=mysql_tablename($result,$i);

}

mysql_free_result($result);

return$tables;

}

//从结果集中取得列信息并作为对象返回,取得所有字段

functionget_result_fields($query_id=""){

if($query_id=="")$query_id=$this->query_id;

while($field=mysql_fetch_field($query_id)){

$fields[]=$field;

}

return$fields;

}

//错误提示

functionhalt($the_error=""){

$message=$the_error."
\r\n";

$message.=$this->get_errno()."
\r\n";

$sql="INSERTINTO`db_error`(pagename,errstr,timer)VALUES('".$_SERVER["PHP_SELF"]."','".addslashes($message)."',".time().")";

@mysql_unbuffered_query($sql);

if(DEBUG==true){

echo"

MySQL数据库错误";

echo"\r\n";

echo"

\r\n";

echo"

\r\n";

echo"".htmlspecialchars($message)."\r\n";

echo"

\r\n";

exit;

}

}

function__destruct(){

$this->shutdown_queries=array();

$this->close_db();

}

functionsql_select($tbname,$where="",$limit=0,$fields="*",$orderby="id",$sort="DESC"){

$sql="SELECT".$fields."FROM`".$tbname."`".($where?"WHERE".$where:"")."ORDERBY".$orderby."".$sort.($limit?"limit".$limit:"");

return$sql;

}

functionsql_insert($tbname,$row){

foreach($rowas$key=>$value){

$sqlfield.=$key.",";

$sqlvalue.="'".$value."',";

}

return"INSERTINTO`".$tbname."`(".substr($sqlfield,0,-1).")VALUES(".substr($sqlvalue,0,-1).")";

}

functionsql_update($tbname,$row,$where){

foreach($rowas$key=>$value){

$sqlud.=$key."='".$value."',";

}

return"UPDATE`".$tbname."`SET".substr($sqlud,0,-1)."WHERE".$where;

}

functionsql_delete($tbname,$where){

return"DELETEFROM`".$tbname."`WHERE".$where;

}

//新增加一条记录

functionrow_insert($tbname,$row){

$sql=$this->sql_insert($tbname,$row);

return$this->query_unbuffered($sql);

}

//更新指定记录

functionrow_update($tbname,$row,$where){

$sql=$this->sql_update($tbname,$row,$where);

return$this->query_unbuffered($sql);

}

//删除满足条件的记录

functionrow_delete($tbname,$where){

$sql=$this->sql_delete($tbname,$where);

return$this->query_unbuffered($sql);

}

/*根据条件查询,返回所有记录

*$tbname表名,$where查询条件,$limit返回记录,$fields返回字段

*/

functionrow_select($tbname,$where="",$limit=0,$fields="*",$orderby="id",$sort="DESC"){

$sql=$this->sql_select($tbname,$where,$limit,$fields,$orderby,$sort);

return$this->row_query($sql);

}

//详细显示一条记录

functionrow_select_one($tbname,$where,$fields="*",$orderby="id"){

$sql=$this->sql_select($tbname,$where,1,$fields,$orderby);

return$this->row_query_one($sql);

}

functionrow_query($sql){

$rs=$this->query($sql);

$rs_num=$this->num_rows($rs);

$rows=array();

for($i=0;$i

$rows[]=$this->fetch_array($rs);

}

$this->free_result($rs);

return$rows;

}

functionrow_query_one($sql){

$rs=$this->query($sql);

$row=$this->fetch_array($rs);

$this->free_result($rs);

return$row;

}

//计数统计

functionrow_count($tbname,$where=""){

$sql="SELECTcount(id)asrow_sumFROM`".$tbname."`".($where?"WHERE".$where:"");

$row=$this->row_query_one($sql);

return$row["row_sum"];

}

}

?>

很久没有发帖了,把我常用的一些php类文件分享出来。

如果您加了新功能,或者是有改进,请与大家一起分享。

复制代码 代码如下:

$db_config["hostname"]="127.0.0.1";//服务器地址

$db_config["username"]="root";//数据库用户名

$db_config["password"]="root";//数据库密码

$db_config["database"]="wap_blueidea_com";//数据库名称

$db_config["charset"]="utf8";

include('db.php');

$db=newdb();

$db->connect($db_config);

//例:查询表table_name中cid=1的所有记录。

$row=$db->row_select('table_name','cid=1');

?>

更详细的使用方法,请参考db类文件中的注释。

点击这里复制本文地址

以上内容由聚米学院网友整理呈现,如对侵犯您的权益,请联系邮箱:fzsbm@qq.com

支持Ctrl+Enter提交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值