• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

一个MYSQL连接类

发布: 2007-7-14 19:53 | 作者: 佚名    | 来源: 网络转载     | 查看: 18次 | 进入软件测试论坛讨论

领测软件测试网


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;
  }
    
}

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网