动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   PHP → 阅读文章

 一个MYSQL连接类

作者来源: 
阅读 数 489 人次 , 2006-3-29 4:17:00 


class dblink //数据库查询的类
{  var $dbaselink; //数据库连接指针
var $dbase;

function dblink($base="") //构造函数
//$base 为选择数据库名称
{ $this->dbaselink=@mysql_connect("host","user","password");
if(!$this->dbaselink) die($this->dberror("1"));
if($base!="") $this->dbchange($base);

}

function dbclose() //关闭数据库连接
{ mysql_close($this->dbaselink);
}

function dberror($n,$sql="") //输出错误信息,并退出程序
{
$dberrorcode=array(
1 => "不能连接到数据库",
1004 => db_error_cannot_create,
1005 => db_error_cannot_create,
1006 => db_error_cannot_create,
1007 => "对象已经存在,不能完成创建操作",
1008 => "不能完成删除操作",
1046 => db_error_nodbselected,
1050 => db_error_already_exists,
1051 => db_error_nosuchtable,
1054 => "所检索的字段不存在",
1062 => db_error_already_exists,
1064 => db_error_syntax,
1100 => db_error_not_locked,
1136 => db_error_value_count_on_row,
1146 => "所检索的数据表不存在",
1049 => "所选择的数据库不存在"
);
echo "<div style='background-color:#dddddd;color:#000000;font-size:9pt;width=400' align=center>错误 $n :".$dberrorcode[$n]."<br>".$sql."</div>";

}
function dbchange($base) //改变当前数据库
 {
 $this->dbase=$base;
 @mysql_select_db($base,$this->dbaselink);
if($msg=mysql_errno($this->dbaselink)) die($this->dberror($msg));

 }


function dbquery($sql,$base="",$type=0)  //对指定数据库进行访问
//$sql为sql语句
//$base为访问的数据库名,如果没有则使用上次使用的
//$type为返回数组格式,0返回name=>value形式,1返回value格式
{ if($base!="" || $this->dbase!=$base) $this->dbchange($base);
$result=@mysql_query($sql,$this->dbaselink);
if($msg=mysql_errno($this->dbaselink)) die($this->dberror($msg,$sql));

@$num=mysql_num_rows($result);
if($num==0) $rtarray="";
else {
for($i=0;$i<$num;$i++)
$rtarray[$i]=($type==0)?mysql_fetch_array($result):mysql_fetch_row($result);

 }
@mysql_free_result($result);
return $rtarray;
}




function dbcountrecords($table,$where="",$base="",$index="id") //统计表中记录的数目
//$table 操作的数据表名称
//$where 完整的where子句
//$base 操作的数据库名称
//$index 操作所使用的索引字段
{ if($base!="" || $this->dbase!=$base) $this->dbchange($base);
$result = mysql_query("select count(".$index.") as 'num' from $table ".$where,$this->dbaselink);
@$num = mysql_result($result,0,"num");
@mysql_free_result($result);
return $num;
}



function dbio($sql,$base="") //无返回值的sql操作,例如insert操作,返回新插入的id,update和delete无返回值
{ if($base!="" || $this->dbase!=$base) $this->dbchange($base);
$result=@mysql_query($sql,$this->dbaselink);
@mysql_free_result($result);
return mysql_insert_id($this->dbaselink);

}

function dbfieldlist($table,$base) //字段信息列表
{ $pt = @mysql_list_fields($base,$table);
if($msg=mysql_errno($this->dbaselink)) die($this->dberror($msg));
$n=mysql_num_fields($pt);
for($i=0;$i<$n;$i++) {
$name = mysql_field_name($pt,$i);
$type = mysql_field_type($pt,$i);
$len = mysql_field_len($pt,$i);
$rt[$i]=array("name" => $name, //字段名称
"type" => $type, //字段类型
"len"  => $len); //字段长度
}
return $rt;
}

function dbtablelist($basename) //数据库basename的表信息
{
$result=mysql_list_tables($basename,$this->dbaselink);
$rt=mysql_fetch_array($result);
@mysql_free_result($result);
return $rt;
}

}

 本文Tagsmysql  数据库  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:从MySQL导入导出大量数据的程序实现方法
· 下一篇:WinMySQLadmin 1.1以明文形式存放Mysql密码漏洞
· 用PHP生成自己的LOG文件
· 用PHP制作饼图调查表
· PHP中重新定向到另一个页面
· 第四节--构造函数和析构函数 -- Classes and Objects in PHP5 [4]
· PHP和Java


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077