PHP头条
热点:

mysql操作类


<?php 
/**
 * 数据库操作类
 * 2011/8/25
 * kcj
 * */ 
class MyDB { 
    private $db_host;        //数据库主机名  
    private $db_user;        //数据库用户名  
    private $db_pwd;         //数据库密码  
    private $db_database;    //数据库名  
    private $conn;           //连接标识  
    private $result;         //执行query命令的结果资源标识  
    private $row;            //返回的条目数  
    private $sql;            //sql执行语句  
    private $coding;         //数据库编码  
    private $bulletin=true;       // 是否开启错误记录  
    private $show_error=false;    //测试阶段,显示所有错误,具有安全隐患,默认关闭  
    private $is_error=false;      //发现错误是否立即终止,默认true,建议不启用,因为当有问题时用户什么也看不到是很苦恼的  
    //构造函数  
     function __construct($db_host,$db_user,$db_pwd,$db_database,$conn,$doding){ 
           $this->db_host=$db_host; 
           $this->db_user=$db_user; 
           $this->db_pwd=$db_pwd; 
           $this->db_database=$db_database; 
           $this->conn=$conn; 
           $this->coding=$coding; 
           $this->connect(); 
         
     } 
     //数据库连接  
     public  function connect(){ 
        if($this->conn=="pconn"){ 
            //永久连接  
            $this->conn=mysql_pconnect($this->db_host,$this->db_user,$this->db_pwd); 
        }else{ 
            //即使连接  
            $this->conn=mysql_connect($this->db_host,$this->db_user,$this->db_pwd); 
        } 
        if(!mysql_select_db($this->db_database,$this->conn)){ 
            if($this->show_error){ 
                $this->show_error("数据库不可用:",$this->db_database); 
            } 
        } 
     } 
      
     //数据库执行语句,可执行查询添加修改删除等任何sql语句  
     public  function query($sql){ 
        if($sql==""){ 
            $this->show_error("sql语句错误:","sql语句为空"); 
        } 
        $this->sql=$sql; 
        $result=mysql_query($this->sql,$this->conn); 
        if(!$result){ 
            if($this->show_error){ 
                $this->show_error("错误sql语句:",$this->sql); 
            } 
        }else { 
            $this->result; 
        } 
        return  $result; 
     } 
     //创建添加新的数据库  
     public  function create_database($database_name){ 
         $database=$database_name; 
         $sqlDatabase='create database'.$database; 
         $this->query($sqlDatabase); 
     } 
     //查询服务器所有数据库  
     //将系统数据库与用户分开,更直观的显示  
     public function show_database(){ 
        $this->query("show databases"); 
        echo "现在有的数据库:".$amount=$this->db_num_rows($rs); 
        echo "<br>"; 
        $i=1; 
        while ($row=$this->fetch_array($rs)){ 
            echo "$i $row[Database]"; 
            echo "<br>"; 
            $i++; 
        } 
     } 
     //以数组的形式返回主机中所有的数据库名  
     public function databases(){ 
        $rsPtr=mysql_list_dbs($this->conn); 
        $i=0; 
        $cnt=mysql_num_rows($rsPtr); 
        while ($i<$cnt){ 
            $rs[]=mysql_db_name($rsPtr,$i); 
            $i++; 
        } 
        return $rs; 
     } 
     //查询数据库下所有的表  
     public  function show_tables($database_name){ 
        $this->query("show tables"); 
        echo "现有数据库:".$amount=$this->db_num_rows($rs); 
        echo  "<br>"; 
        $i=1; 
        while ($row=$this->fetch_array($rs)){ 
            $columnName="Tables_in_".$database_name; 
            echo "$i $row[$columnName]"; 
            echo "<br>"; 
            $i++; 
        } 
     } 
     // 取得结果集  
     public function fetch_array($resultt=""){ 
        if($resultt!=""){ 
            return mysql_fetch_array($resultt); 
        }else { 
            return mysql_fetch_array($this->result); 
        } 
     } 
     //取得结果数  $row['content']   
     public  function mysql_result_li(){ 
        return mysql_result($str); 
     } 
     //获取关联数组  $row['字段名']  
     public  function fetch_assoc(){ 
        return mysql_fetch_assoc($this->result); 
     } 
     //获取数字索引数组 $row[0] $row[1] $row[2]   
     public  function fetch_row(){ 
        return mysql_fetch_row($this->result); 
     } 
     //获取对象数组,使用$row->content  
     public function fetch_Object(){ 
        return mysql_fetch_object($this->result); 
     } 
     //简化查询select  
     public function findall($table){ 
        $this->query("select* from $table"); 
     } 
     //简化查询select  
     public  function select($table,$columnName="*",$condition='',$debug=''){ 
        $condition=$condition?'where'.$condition:null; 
        if($debug){ 
            echo "select $columnName from $table $condition"; 
        }else{ 
            $this->query("select $columnName  from $table $condition"); 
        } 
     } 
      
     //简化删除del  
     public function delete($table,$condition,$url=''){ 
        if($this->query("delete from $table where $condition")){ 
            if(!emptyempty($url)){ 
                $this->Get_admin_msg($url,'删除成功'); 
            } 
        } 
     } 
     //简化插入insert   
     public  function insert($table,$columnName,$value,$url=''){ 
          if($this->query("insert into $table ($columnName) values ($value)")){ 
            if(!emptyempty($url)){ 
                $this->Get_admin_msg($url,'添加成功'); 
            } 
          } 
         
     } 
     //简化更新update  
     public function update($table,$mod_content,$condition,$url=''){ 
        if($this->query("update $table set $mod_content where $condition")){ 
            if(!emptyempty($url)){ 
                $this->Get_admin_msg($url); 
            } 
        } 
     } 
     //取得上一步insert操作的id  
     public  function insert_id(){ 
        return  mysql_insert_id(); 
     } 
     //指向确定的一条数据记录  
     public  function db_data_seek($id){ 
        if($id>0){ 
            $id=$id-1; 
        } 
        if(!@mysql_data_seek($this->result,$id)){ 
            $this->show_error("sql语句有误:","指定的数据为空"); 
        } 
        return $this->result; 
     } 
     //根据select查询结果计算结果集条数  
     public function db_num_rows(){ 
        if($this->result=null){ 
            if($this->show_error){ 
                $this->show_error("sql语句错误:","暂时为空,没有任何内容"); 
            } 
        }else{ 
            return mysql_num_rows($this->result); 
        } 
     } 
     //根据insert update delete执行的结果驱动影响行数  
     public function db_affected_rows(){ 
        return mysql_affected_rows(); 
     } 
     //输出显示sql语句  
     public  function show_error($message="",$sql=""){ 
        if(!$sql){ 
            echo "<font color='red'>" . $message . "</font>"; 
            echo "<br>"; 
        }else{ 
             echo "<fieldset>"; 
            echo "<legend>错误信息提示:</legend><br />"; 
            echo "<div style='font-size:14px; clear:both; font-family:Verdana, Arial, Helvetica, sans-serif;'>"; 
           echo "<div style='height:20px; background:#000000; border:1px #000000 solid'>"; 
            echo "<font color='white'>错误号:12142</font>"; 
            echo "</div><br />"; 
            echo "错误原因:" . mysql_error() . "<br /><br />"; 
           echo "<div style='height:20px; background:#FF0000; border:1px #FF0000 solid'>"; 
            echo "<font color='white'>" . $message . "</font>"; 
            echo "</div>"; 
            echo "<font color='red'><pre>" . $sql . "</pre></font>"; 
            $ip = $this->getip(); 
            if ($this->bulletin) { 
                $time = date("Y-m-d H:i:s"); 
                $message = $message . "\r\n$this->sql" . "\r\n客户IP:$ip" . "\r\n时间 :$time" . "\r\n\r\n"; 
 
                $server_date = date("Y-m-d"); 
                $filename = $server_date . ".txt"; 
                $file_path = "error/" . $filename; 
                $error_content = $message; 
                //$error_content="错误的数据库,不可以链接";  
                $file = "error"; //设置文件保存目录  
          //建立文件夹  
  if(!file_exists($file)){ 
    if(!mkdir($file,0777)){ 
        die("upload files directory does not exist and creation failed"); 
    } 
  } 
    //建立txt日期文件  
    if(!file_exists($file_path)){ 
        fopen($file_path,"w+"); 
        if(is_writable($file_path)){ 
            if(!$handle=fopen($file_path,'a')){ 
                echo "不能打开文件 $filename"; 
                exit; 
            } 
            if(!fwrite($handle,$error_content)){ 
                echo "不能写到文件 $filename"; 
                exit; 
            } 
            echo "——错误记录被保存!"; 
          fclose($handle); 
 
        }else { 
            echo "文件 $filename 不可写"; 
        } 
    }else { 
        if(is_writable($file_path)){ 
            if(!$handle=fopen($file_path,'a')){ 
                 echo "不能打开文件 $filename"; 
                 exit; 
            } 
            if(!fwrite($handle,$error_content)){ 
                echo  "不能写入文件 $filename"; 
                exit; 
            } 
            echo "——错误记录被保存!"; 
              fclose($handle); 
        }else { 
            echo "文件 $filename 不可写"; 
        } 
    } 
        } 
     echo "<br />";    
     if ($this->is_error) { 
          exit; 
            } 
        } 
     echo "</div>"; 
     echo "</fieldset>"; 
     echo "<br/>"; 
     } 
   //释放结果集  
   public  function free(){ 
    @mysql_free_result($this->result); 
   } 
   //数据库选择  
   public  function select_db($db_database){ 
    return mysql_select_db($db_database); 
   } 
   //查询字段数量  
   public  function num_fields($table_name){ 
    $this->query("select * from $table_name"); 
    echo "<br>"; 
    echo "字段数:".$total=mysql_num_fields($this->result); 
    for ($i=0;$i<$total;$i++){ 
        print_r(mysql_fetch_field($this->result,$i)); 
    } 
    echo "</pre>"; 
    echo "<br>"; 
   } 
   //取得mysql 服务器信息  
   public  function mysql_server($num=''){ 
    switch ($num){ 
          case 1: 
            return mysql_get_server_info(); 
            break; 
            case 2: 
            return mysql_get_host_info(); 
            break; 
            case 3: 
            return mysql_get_client_info(); 
            break; 
            case 4: 
            return mysql_get_proto_info(); 
            break; 
            default: 
                return mysql_get_client_info(); 
    } 
   } 
  public  function __destruct(){ 
    if(!emptyempty($this->result)){ 
        $this->free(); 
    } 
    mysql_close($this->conn); 
  } 
  //获得客户端真实的ID地址  
   function getip() { 
        if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) { 
            $ip = getenv("HTTP_CLIENT_IP"); 
        } else 
            if (getenv("HTTP_X_FORWARDED_FOR") &&strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) { 
                $ip = getenv("HTTP_X_FORWARDED_FOR"); 
            } else 
                if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) { 
                    $ip = getenv("REMOTE_ADDR"); 
                } else 
                    if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] &&strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) { 
                        $ip = $_SERVER['REMOTE_ADDR']; 
                    } else { 
                        $ip = "unknown"; 
                    } 
        return ($ip); 
   } 
   

 
 
?> 
<?php
/**
 * 数据库操作类
 * 2011/8/25
 * kcj
 * */
class MyDB {
 private $db_host;        //数据库主机名
 private $db_user;        //数据库用户名
 private $db_pwd;         //数据库密码
 private $db_database;    //数据库名
 private $conn;           //连接标识
 private $result;         //执行query命令的结果资源标识
 private $row;            //返回的条目数
 private $sql;            //sql执行语句
 private $coding;         //数据库编码
 private $bulletin=true;       // 是否开启错误记录
 private $show_error=false;    //测试阶段,显示所有错误,具有安全隐患,默认关闭
    private $is_error=false;      //发现错误是否立即终止,默认true,建议不启用,因为当有问题时用户什么也看不到是很苦恼的
 //构造函数
  function __construct($db_host,$db_user,$db_pwd,$db_database,$conn,$doding){
        $this->db_host=$db_host;
        $this->db_user=$db_user;
        $this->db_pwd=$db_pwd;
        $this->db_database=$db_database;
        $this->conn=$conn;
        $this->coding=$coding;
        $this->connect();
   
  }
  //数据库连接
  public  function connect(){
   if($this->conn=="pconn"){
    //永久连接
    $this->conn=mysql_pconnect($this->db_host,$this->db_user,$this->db_pwd);
   }else{
    //即使连接
    $this->conn=mysql_connect($this->db_host,$this->db_user,$this->db_pwd);
   }
   if(!mysql_select_db($this->db_database,$this->conn)){
    if($this->show_error){
     $this->show_error("数据库不可用:",$this->db_database);
    }
   }
  }
 
  //数据库执行语句,可执行查询添加修改删除等任何sql语句
  public  function query($sql){
   if($sql==""){
    $this->show_error("sql语句错误:","sql语句为空");
   }
   $this->sql=$sql;
   $result=mysql_query($this->sql,$this->conn);
   if(!$result){
    if($this->show_error){
     $this->show_error("错误sql语句:",$this->sql);
    }
   }else {
    $this->result;
   }
   return  $result;
  }
  //创建添加新的数据库
  public  function create_database($database_name){
      $database=$database_name;
      $sqlDatabase='create database'.$database;
      $this->query($sqlDatabase);
  }
  //查询服务器所有数据库
  //将系统数据库与用户分开,更直观的显示
  public function show_database(){
   $this->query("show databases");
   echo "现在有的数据库:".$amount=$this->db_num_rows($rs);
   echo "<br>";
   $i=1;
   while ($row=$this->fetch_array($rs)){
    echo "$i $row[Database]";
    echo "<br>";
    $i++;
   }
  }
  //以数组的形式返回主机中所有的数据库名
  public function databases(){
   $rsPtr=mysql_list_dbs($this->conn);
   $i=0;
   $cnt=mysql_num_rows($rsPtr);
   while ($i<$cnt){
    $rs[]=mysql_db_name($rsPtr,$i);
    $i++;
   }
   return $rs;
  }
  //查询数据库下所有的表
  public  function show_tables($database_name){
   $this->query("show tables");
   echo "现有数据库:".$amount=$this->db_num_rows($rs);
   echo  "<br>";
   $i=1;
   while ($row=$this->fetch_array($rs)){
    $columnName="Tables_in_".$database_name;
    echo "$i $row[$columnName]";
    echo "<br>";
    $i++;
   }
  }
  // 取得结果集
  public function fetch_array($resultt=""){
   if($resultt!=""){
    return mysql_fetch_array($resultt);
   }else {
    return mysql_fetch_array($this->result);
   }
  }
  //取得结果数  $row['content']
  public  function mysql_result_li(){
   return mysql_result($str);
  }
  //获取关联数组  $row['字段名']
  public  function fetch_assoc(){
   return mysql_fetch_assoc($this->result);
  }
  //获取数字索引数组 $row[0] $row[1] $row[2]
  public  function fetch_row(){
   return mysql_fetch_row($this->result);
  }
  //获取对象数组,使用$row->content
  public function fetch_Object(){
   return mysql_fetch_object($this->result);
  }
  //简化查询select
  public function findall($table){
   $this->query("select* from $table");
  }
  //简化查询select
  public  function select($table,$columnName="*",$condition='',$debug=''){
   $condition=$condition?'where'.$condition:null;
   if($debug){
    echo "select $columnName from $table $condition";
   }else{
    $this->query("select $columnName  from $table $condition");
   }
  }
 
  //简化删除del
  public function delete($table,$condition,$url=''){
   if($this->query("delete from $table where $condition")){
    if(!empty($url)){
     $this->Get_admin_msg($url,'删除成功');
    }
   }
  }
  //简化插入insert
  public  function insert($table,$columnName,$value,$url=''){
     if($this->query("insert into $table ($columnName) values ($value)")){
      if(!empty($url)){
       $this->Get_admin_msg($url,'添加成功');
      }
     }
   
  }
  //简化更新update
  public function update($table,$mod_content,$condition,$url=''){
   if($this->query("update $table set $mod_content where $condition")){
    if(!empty($url)){
     $this->Get_admin_msg($url);
    }
   }
  }
  //取得上一步insert操作的id
  public  function insert_id(){
   return  mysql_insert_id();
  }
  //指向确定的一条数据记录
  public  function db_data_seek($id){
   if($id>0){
    $id=$id-1;
   }
   if(!@mysql_data_seek($this->result,$id)){
    $this->show_error("sql语句有误:","指定的数据为空");
   }
   return $this->result;
  }
  //根据select查询结果计算结果集条数
  public function db_num_rows(){
   if($this->result=null){
    if($this->show_error){
     $this->show_error("sql语句错误:","暂时为空,没有任何内容");
    }
   }else{
    return mysql_num_rows($this->result);
   }
  }
  //根据insert update delete执行的结果驱动影响行数
  public function db_affected_rows(){
   return mysql_affected_rows();
  }
  //输出显示sql语句
  public  function show_error($message="",$sql=""){
   if(!$sql){
    echo "<font color='red'>" . $message . "</font>";
            echo "<br>";
   }else{
     echo "<fieldset>";
            echo "<legend>错误信息提示:</legend><br />";
            echo "<div style='font-size:14px; clear:both; font-family:Verdana, Arial, Helvetica, sans-serif;'>";
           echo "<div style='height:20px; background:#000000; border:1px #000000 solid'>";
            echo "<font color='white'>错误号:12142</font>";
            echo "</div><br />";
            echo "错误原因:" . mysql_error() . "<br /><br />";
           echo "<div style='height:20px; background:#FF0000; border:1px #FF0000 solid'>";
            echo "<font color='white'>" . $message . "</font>";
            echo "</div>";
            echo "<font color='red'><pre>" . $sql . "</pre></font>";
            $ip = $this->getip();
            if ($this->bulletin) {
                $time = date("Y-m-d H:i:s");
                $message = $message . "\r\n$this->sql" . "\r\n客户IP:$ip" . "\r\n时间 :$time" . "\r\n\r\n";

                $server_date = date("Y-m-d");
                $filename = $server_date . ".txt";
                $file_path = "error/" . $filename;
                $error_content = $message;
                //$error_content="错误的数据库,不可以链接";
                $file = "error"; //设置文件保存目录
          //建立文件夹
  if(!file_exists($file)){
   if(!mkdir($file,0777)){
    die("upload files directory does not exist and creation failed");
   }
  }
    //建立txt日期文件 www.2cto.com
    if(!file_exists($file_path)){
     fopen($file_path,"w+");
     if(is_writable($file_path)){
      if(!$handle=fopen($file_path,'a')){
       echo "不能打开文件 $filename";
       exit;
      }
      if(!fwrite($handle,$error_content)){
       echo "不能写到文件 $filename";
       exit;
      }
      echo "——错误记录被保存!";
          fclose($handle);

     }else {
      echo "文件 $filename 不可写";
     }
    }else {
     if(is_writable($file_path)){
      if(!$handle=fopen($file_path,'a')){
        echo "不能打开文件 $filename";
                 exit;
      }
      if(!fwrite($handle,$error_content)){
       echo  "不能写入文件 $filename";
       exit;
      }
      echo "——错误记录被保存!";
              fclose($handle);
     }else {
      echo "文件 $filename 不可写";
     }
    }
   }
  echo "<br />"; 
  if ($this->is_error) {
     exit;
            }
        }
     echo "</div>";
     echo "</fieldset>";
     echo "<br/>";
  }
   //释放结果集
   public  function free(){
    @mysql_free_result($this->result);
   }
   //数据库选择
   public  function select_db($db_database){
    return mysql_select_db($db_database);
   }
   //查询字段数量
   public  function num_fields($table_name){
    $this->query("select * from $table_name");
    echo "<br>";
    echo "字段数:".$total=mysql_num_fields($this->result);
    for ($i=0;$i<$total;$i++){
     print_r(mysql_fetch_field($this->result,$i));
    }
    echo "</pre>";
    echo "<br>";
   }
   //取得mysql 服务器信息
   public  function mysql_server($num=''){
    switch ($num){
       case 1:
        return mysql_get_server_info();
        break;
        case 2:
        return mysql_get_host_info();
        break;
        case 3:
        return mysql_get_client_info();
        break;
        case 4:
        return mysql_get_proto_info();
        break;
        default:
         return mysql_get_client_info();
    }
   }
  public  function __destruct(){
   if(!empty($this->result)){
    $this->free();
   }
   mysql_close($this->conn);
  }
  //获得客户端真实的ID地址
   function getip() {
        if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } else
            if (getenv("HTTP_X_FORWARDED_FOR") &&strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
                $ip = getenv("HTTP_X_FORWARDED_FOR");
            } else
                if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
                    $ip = getenv("REMOTE_ADDR");
                } else
                    if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] &&strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
                        $ip = $_SERVER['REMOTE_ADDR'];
                    } else {
                        $ip = "unknown";
                    }
        return ($ip);
   }
 
}


?>

 

摘自 chaojie2009的专栏

www.phpzy.comtrue/phprm/18153.htmlTechArticlemysql操作类 ?php /** * 数据库操作类 * 2011/8/25 * kcj * */ class MyDB { private $db_host; //数据库主机名 private $db_user; //数据库用户名 private $db_pwd; //数据库密码 private $db_database; //数据库名 private $...

相关文章

    暂无相关文章

PHP之友评论

今天推荐