+ -
当前位置:首页 → 问答吧 → 自己写的一个数据库操作类,现在一直在用,挺方便的。

自己写的一个数据库操作类,现在一直在用,挺方便的。

时间:2008-03-17

来源:互联网

没写连接数据库语句,需先自行链接

<?
/******************************************
MYSQL数据库简易操作类说明
作者:朱伟宝
email:[email protected]
电话:28631118
简单调用方法:
$dbclass = new dbclass();
$sql="select * from fixcable";
$dbclass->getResult($sql);
$ar=$dbclass->db2array();
各主要方法说明:
getResult($sql)                 取得查询结果函数,数据输入类变量Result,$sql为指定的查询语句
freeResult()                    释放结果内存
db2field($selectfield="")       取数据库一列数据做成数组,selectfield为列名
db2array()                      取数据库数据做成数组
db2row()                        取数据库一行数据做成数组
db2value($selectfield="")       取数据库某一值,要求sql语句中返回结果为单一值,$sql为指定的查询语句
******************************************/
class dbclass
{
  //下面是成员属性
  private $sql; //sql语句
  private $Result; //sql查询结果集
  
  //定义一个构造方法
  function __construct()
  {
   $this->sql="";
   $this->Result="";
  }
  
  
  //这是一个析构函数,在对象销毁前调用
  function __destruct()
  {
   $this->sql="";
   if($this->Result){
      $this->freeResult();
    }
  }
  
  //__get()方法用来获取私有属性
  private function __get($property_name)
  {
  if(isset($this->$property_name))
  {
    return($this->$property_name);
  }else {
    return(NULL);
  }
  }
  
  
  //__set()方法用来设置私有属性
  private function __set($property_name, $value)
  {
    $this->$property_name = $value;
  }
  
  
  //__isset()方法
    private function __isset($nm)
  {
    return isset($this->$nm);
  }
  
  
  //__unset()方法
    private function __unset($nm)
  {
    unset($this->$nm);
  }
  
  /*------------以下为程序出错调用方法-------------*/
  function setMustBeHalt($MustBeHalt = false){
      $this->MustBeHalt = $MustBeHalt;
  }
  
  function getMustBeHalt(){
      return $this->MustBeHalt;
  }
  
  /* 下面的自己可以定义格式 */
  function halt($msg = "未知错误!", $MustBeHalt = 0){
   echo $msg;
   if($MustBeHalt !== 0 || $this->getMustBeHalt()){
    if($this->getTest()){
     echo "<pre>";
     print_r($this);
     echo "</pre>";
    }
    die();
   }
  }
  /*------------以上为程序出错调用方法-------------*/
  function executesql($sqlquerystring) {
   [email=$result=@mysql_query($sqlquerystring]$result=@mysql_query($sqlquerystring[/email]) or die("无效语句! <BR> $sqlquerystring <BR>".mysql_error());
   return $result;
  }
  
  public function getResult($sql){/* 取得查询结果函数,数据输入类变量Result */
   $this->sql=$sql;
   if($this->sql===""){//sql语句处理
    $this->halt("sql语句不能为空!");
    return;
   }else{
    $this->Result = $this->executesql($this->sql);
   }
  }
  
  function freeResult(){ /* 释放结果内存 */
   return mysql_free_result($this->Result);
  }
  
  
  
  public function db2field($selectfield=""){/* 取数据库一列数据做成数组 */  
   if($selectfield===""){//选择字段为空处理
    $this->halt("选择的字段名不能为空");
    return;
   }
   
   $pre_list="";
   while($rs=mysql_fetch_assoc($this->Result)){
    $pre_list .= ",".$rs[$selectfield]."";
   }
   $pre_list = substr($pre_list,1);
   $dblist = explode(",", $pre_list);
   return $dblist;
  }
  
  
  public function db2array(){/* 取数据库数据做成数组 */
   $datapool=array();
    $affrows = mysql_affected_rows();
    for($i=0;$i<$affrows;$i++){
     $rs=mysql_fetch_assoc($this->Result);
      $datapool[$i] = $rs;
    }
    return $datapool;
  }
  
  public function db2row(){/* 取数据库一行数据做成数组 */
    $rs=mysql_fetch_assoc($this->Result);
    return $rs;
  }
  
  public function db2value($selectfield=""){/* 取数据库某一值,要求sql语句中返回结果为单一值 */
   if($selectfield===""){//选择字段为空处理
    $this->halt("选择的字段名不能为空");
    return;
   }
   $dbvalue="";
   $rs=mysql_fetch_assoc($this->Result);
   $dbvalue = $rs[$selectfield];
   return $dbvalue;
  }
  
  function numFields(){ /* 取得结果集中字段的数目 */
   return mysql_num_fields($this->Result);
  }
  
  function numRows(){ /* 取得结果集中行的数目 */
   return mysql_num_rows($this->Result);
  }
  
  function escapeString($unescapedString){ /* 转义一个字符串用于 mysql_query */
   return mysql_escape_string($unescapedString);
  }
  
  function fieldFlags($fieldOffset){ /* 从结果中取得和指定字段关联的标志 */
   return mysql_field_flags($this->Result, $fieldOffset);
  }
  
  function fieldLen($fieldOffset){ /* 返回指定字段的长度 */
   return mysql_field_len($this->Result, $fieldOffset);
  }
  
  function fieldName($fieldIndex){ /* 取得结果中指定字段的字段名 */
   return mysql_field_name($this->Result, $fieldIndex);
  }
  
  function fieldSeek($fieldOffset){ /* 将结果集中的指针设定为制定的字段偏移量 */
   return mysql_field_seek($this->Result, $fieldOffset);
  }
  
  function fieldTable($fieldOffset){ /* 取得指定字段所在的表名 */
   return mysql_field_table($this->Result, $fieldOffset);
  }
  
  function fieldType($fieldOffset){ /* 取得结果集中指定字段的类型 */
   return mysql_field_type($this->Result, $fieldOffset);
  }
}
?>

作者: zhuweibao   发布时间: 2008-03-17

作者: luzhou   发布时间: 2008-03-18

恩,不错,拿走。。。呵呵

作者: jeccy   发布时间: 2008-04-05

很详细,电话都有了!呵呵
很全

作者: gently   发布时间: 2008-04-05

作者: heixiake   发布时间: 2008-04-08

作者: xhq6880   发布时间: 2008-04-23

不错,学习了。

作者: fly1983   发布时间: 2008-05-10

作者: wangyl   发布时间: 2008-05-10


封装得有点��嗦
可扩展性不高


不过还是顶下你~ 继续加油哦~

作者: edwardhey   发布时间: 2008-05-13

谢谢分享 !

作者: wydycrtd   发布时间: 2008-05-13

热门下载

更多