一直使用的一个php数据库操作类 - TOMMYHU - 专注互联网开发及运营技术,提供相关资料及软件下载,奇趣网络时事评论!
Aug 10

一直使用的一个php数据库操作类 不指定

tommyhu , 10:36 , PHP , Comments(0) , Trackbacks(0) , Reads(8319) , Via Original Large | Medium | Small

<?php
class DB{
  var $db_host;
  var $db_user;
  var $db_password;
  var $db_database;
  var $result;
  var $conn;
  var $sql;//便于调试
  var $row;
  //构造空函数
  function DB($db_host,$db_user,$db_password,$db_database){
    $this->db_host = $db_host;
    $this->db_user = $db_user;
    $this->db_password = $db_password;
    $this->db_database = $db_database;
  }
  //连接数据库
  function conn(){
    $conn = mysql_connect($this->db_host,$this->db_user,$this->db_password);
    if(!$conn){
      $this->msg_error("无法连接数据库");
    }else{
      $this->conn = $conn;
    }
    if(!mysql_select_db($this->db_database,$this->conn)){
     $this->msg_error("无法选择数据库");
    }
    return $this->conn;
  }
  //更新数据库,包括数据添加,更新
  function query_noResult($sql){
    if("" == $sql){$this->msg_error("传递了一个空变量");}
    $this->sql = $sql;
    //echo $this->sql;
    //echo $this->conn;
    if(!mysql_db_query($this->db_database,$this->sql,$this->conn)){
     $this->msg_error(("数据更新过程发生错误!"));
    }
    return null;
  }
  //查询数据并返回result类型
  function query_withResult($sql){
    if("" == $sql){$this->msg_error("传递了一个空变量");}
    $this->sql = $sql;
    // $conn = mysql_connect("localhost","root","");
    $result = mysql_db_query($this->db_database,$this->sql,$this->conn);  
    //一个字母错误浪费了两个小时!真不如java
    //不过是写成了reslut
    
    if(!$result){
      $this->msg_error("数据查询过程发生错误或空记录!");
    }else{
      $this->result = $result;
    }
    //使用时,可以直接引用成员变量而无须关心返回值,除非需要返回值
    //做更多处理
    return $this->result;
  }
  //释放结果集
  function free(){
    mysql_free_result($this->result);
  }
  //关闭连接
  function close(){
    if($this->result){
      $this->free();
    }
    mysql_close($this->conn);
  }
  // 根据执行结果取得影响行数
  function db_affected_rows(){
    return mysql_affected_rows();
  }
  // 根据查询结果计算结果集条数
  function db_num_rows(){
    if($this->result==null){
      $this->msg_error("记录为空!");
    }
    return mysql_num_rows($this->result);
  }
  //取得记录集  
  function db_fetch_array(){
    if($this->result==null){
      //$this->msg_error("您查询的记录为空!");
    }
    $this->row = @mysql_fetch_array($this->result);
    return $this->row;
  }
  //指向确定的一条数据记录
  //通用数据库错误处理
  function db_data_seek($result,$i){
    mysql_data_seek($result,$i);
    return $this->result;
  }
  function msg_error($message){
    $time  = date("Y年m月d日 H时i分s秒");
    echo "很抱歉您操作数据库时发生了错误<br>";
    echo "发生错误时间:".$time."<br>";
    echo "错误信息:".$message."<br>";
    echo "请发送邮件到<a href=mailto:aofanliguo@126.com>aofanliguo@126.com</a>..谢谢!";
    // exit();
}
}
?>


具体使用:
<?php
class Process extends DB{
    var $sql;
    var $db;
    var $random;
    function Process($db){
        $this->sql="";
        $this->db=$db;
    }
    //取得最新记录,可以更改sql语句得到完全控制
    function fetch_new_all(){
        $k=$this->random=Rand(4,10);
        $f=$this->random-4;
        $this->sql="select * from  xl_news order by id desc limit ".$f.",".$k."";
        $result=$this->db->query_withResult($this->sql);
        $number=$this->db->db_num_rows();

        for($i=0;$i<$number;$i++){
            $row=mysql_fetch_array($result);
            $data[]=$row;
        }
        return $data;
    }
    //取得公告栏的数据并显示
    function show_gonggao(){
        $this->sql="select * from xl_gongao";
        $result=$this->db->query_withResult($this->sql);
        $row=mysql_fetch_array($result);
        echo "最新更新:";
        echo $row['date'];
        echo "<br>";
        echo $row['context'];
    }
    //提交咨询内容
    function add_advisory($name,$sex,$age,$text){
        $_name=$name;
        $_sex=$sex;
        $_age=$age;
        $_text=$text;
        $_date=date("Y-m-d H:i:s");
        $this->sql="insert into xl_zixun(name,sex,age,context,date) values('$_name','$_sex','$_age','$_text','$_date')";
        $this->db->query_noResult($this->sql);
    }
}
?>

▲返回顶部

Add a comment

Nickname

emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot