Home > php教程 > php手册 > 我也贴出来自己的一个MYSQL连接类,原创,请指正!

我也贴出来自己的一个MYSQL连接类,原创,请指正!

WBOY
Release: 2016-06-21 09:09:14
Original
920 people have browsed it

mysql|原创

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 "

错误 $n :".$dbErrorCode[$n]."
".$sql."
";
    
  }
    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          $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    $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;
  }
    
}



Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template