php mysql数据库操作类

2018-09-07 15:15

阅读:270

  复制代码 代码如下:
<?php
/*
*mysql数据库DB类
*@packagedb
*@authoryytcpt(无影)
*@version2008-03-27
*@copyrigth
*/
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<$num_tables;$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.<br/>\r\n;
$message.=$this->get_errno().<br/>\r\n;
$sql=INSERTINTO`db_error`(pagename,errstr,timer)VALUES(.$_SERVER[PHP_SELF].,.addslashes($message).,.time().);
@mysql_unbuffered_query($sql);
if(DEBUG==true){
echo<html><head><title>MySQL数据库错误</title>;
echo<styletype=\text/css\><!--.error{font:11pxtahoma,verdana,arial,sans-serif,simsun;}--></style></head>\r\n;
echo<body>\r\n;
echo<blockquote>\r\n;
echo<textareaclass=\error\rows=\15\cols=\100\wrap=\on\>.htmlspecialchars($message).</textarea>\r\n;
echo</blockquote>\r\n</body></html>;
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.,;
}
returnINSERTINTO`.$tbname.`(.substr($sqlfield,0,-1).)VALUES(.substr($sqlvalue,0,-1).);
}
functionsql_update($tbname,$row,$where){
foreach($rowas$key=>$value){
$sqlud.=$key.=.$value.,;
}
returnUPDATE`.$tbname.`SET.substr($sqlud,0,-1).WHERE.$where;
}
functionsql_delete($tbname,$where){
returnDELETEFROM`.$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<$rs_num;$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类文件分享出来。
如果您加了新功能,或者是有改进,请与大家一起分享。
复制代码 代码如下:
<?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类文件中的注释。


评论


亲,登录后才可以留言!