WEB开发网
开发学院数据库MySQL 一个MYSQL连接类 阅读

一个MYSQL连接类

 2007-11-11 15:12:45 来源:WEB开发网   
核心提示: class dbLink//数据库查询的类{ var $dBaseLink;//数据库连接指针var $dBase;function dbLink($base="")//构造函数//$base 为选择数据库名称{ 


class dbLink      //数据库查询的类
{  var $dBaseLink;    //数据库连接指针
  var $dBase;
  
  function dbLink($base="")    //构造函数
                   //$base 为选择数据库名称
 { $this->dBaseLink=@MySQL(和PHP搭配之最佳组合)_connect("host","user","password");
  if(!$this->dBaseLink) die($this->dbError("1"));
  if($base!="") $this->dbChange($base);

 }

  function dbClose()    //关闭数据库连接
 { MySQL(和PHP搭配之最佳组合)_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(和PHP搭配之最佳组合)_select_db($base,$this->dBaseLink);
  if($msg=MySQL(和PHP搭配之最佳组合)_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(和PHP搭配之最佳组合)_query($sql,$this->dBaseLink);
  if($msg=MySQL(和PHP搭配之最佳组合)_errno($this->dBaseLink)) die($this->dbError($msg,$sql));

  @$num=MySQL(和PHP搭配之最佳组合)_num_rows($result);
  if($num==0) $rtArray="";
   else {
    for($i=0;$i<$num;$i++)
     $rtArray[$i]=($type==0)?MySQL(和PHP搭配之最佳组合)_fetch_array($result):MySQL(和PHP搭配之最佳组合)_fetch_row($result);

    }
  @MySQL(和PHP搭配之最佳组合)_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(和PHP搭配之最佳组合)_query("select count(".$index.") as 'num' from $table ".$where,$this->dBaseLink);
  @$num = MySQL(和PHP搭配之最佳组合)_result($result,0,"num");
  @MySQL(和PHP搭配之最佳组合)_free_result($result);
  return $num;
 }



  function dbIo($sql,$base="")        //无返回值的SQL操作,例如insert操作,返回新插入的id,update和delete无返回值
 { if($base!="" || $this->dBase!=$base) $this->dbChange($base);
  $result=@MySQL(和PHP搭配之最佳组合)_query($sql,$this->dBaseLink);
  @MySQL(和PHP搭配之最佳组合)_free_result($result);
  return MySQL(和PHP搭配之最佳组合)_insert_id($this->dBaseLink);

 }
  
  function dbFieldList($table,$base)        //字段信息列表
 { $pt = @MySQL(和PHP搭配之最佳组合)_list_fields($base,$table);
  if($msg=MySQL(和PHP搭配之最佳组合)_errno($this->dBaseLink)) die($this->dbError($msg));
  $n=MySQL(和PHP搭配之最佳组合)_num_fields($pt);
  for($i=0;$i<$n;$i++) {
  $name  =  MySQL(和PHP搭配之最佳组合)_field_name($pt,$i);
  $type  =  MySQL(和PHP搭配之最佳组合)_field_type($pt,$i);
  $len  =  MySQL(和PHP搭配之最佳组合)_field_len($pt,$i);
  $rt[$i]=array("name" => $name,        //字段名称
         "type" => $type,        //字段类型
         "len"   => $len);        //字段长度
  }
  return $rt;
 }
 
  function dbTableList($basename)        //数据库basename的表信息
 {
  $result=MySQL(和PHP搭配之最佳组合)_list_tables($basename,$this->dBaseLink);
  $rt=MySQL(和PHP搭配之最佳组合)_fetch_array($result);
  @MySQL(和PHP搭配之最佳组合)_free_result($result);
  return $rt;
 }
  
}

Tags:一个 MYSQL 连接

编辑录入:coldstar [复制链接] [打 印]
赞助商链接