目录

封装数据库操作类


1.创建文件  DB.class.php;

2.定义属性,为了增加类对成员的控制,我们一般使用访问修饰限定符来保护类结构完整性。(private>protected>public);

3.初始化属性,构造方法来进行初始化;

4.连接数据库,定义成方法;

5.设置字符集,定义成方法;

6.选择数据库,定义成方法;

7.执行sql语句的方法;

8.增加的方法;

9.删除的方法;

10.修改的方法;

11.查询一条数据的方法;

12.查询多条语句的方法;

 关于是否在类中定义属性的原则: 如果在类成员中,如果有多个地方需要使用到同一变量,我们一般把该变量定义为该类的属性;

封装数据库操作类

<?php
    header('content-type:text/html;charset=utf-8');
    //封装数据库操作类
	 class  DB
	 {
	      //定义常用的属性  
		  private $host;
		  private $port;
		  private $user;
		  private $password;
		  private $charset;
		  private $database;
	     
		 //定义一个构造方法进行初始化设置
		 /**
         *@parameter1  $arr=array()  数组里面保存数据库里面相应属性的内容
         *  $arr=['host'=>'localhost','port'=>3306,'user'=>'root','password'=>'root',
         *  'charset'=>'utf8','database'=>'cms']
		 */

		  public function __construct($arr=array()){
		       $this->host=isset($arr['host'])?  $arr['host'] : 'localhost';
		       $this->port=isset($arr['port'])?  $arr['port'] : '3306';
		       $this->user=isset($arr['user'])?  $arr['user'] : 'root';
		       $this->password=isset($arr['password'])?  $arr['password'] : 'root';
		       $this->charset=isset($arr['charset'])?  $arr['charset'] : 'utf8';
		       $this->database=isset($arr['database'])?  $arr['database'] : 'php';
               //调用连接数据库的方法
			   $this->db_connect();
			   //调用设置字符集的方法
			   $this->db_charset();
			   //调用选择数据库的方法
			   $this->db_database();
		  }

        /*连接数据库的方法  
        *原则:在内部能用私有或者受保护的尽量 尽量不让此方法暴露在类的外部,保证类的完整性及安全
		*/
		private function db_connect(){
		      @$link=mysql_connect($this->host.":".$this->port,$this->user,$this->password);
              if(!$link){
			     echo '数据库连接失败<br>';
			     echo '错误编号是'.mysql_errno().'<br>';
                 echo  '错误信息是'.iconv('gbk','utf-8',mysql_error());
				 exit;
			  }
		 }
      
	    //设置字符编码

		 private function db_charset(){
			 $this->db_query("set names {$this->charset}");
			/*
		    $res=mysql_query("set names {$this->charset}");
			if(!$res){
			     echo 'sql语句执行失败<br>';
			     echo '错误编号是'.mysql_errno().'<br>';
                 echo  '错误信息是'.iconv('gbk','utf-8',mysql_error());
				 exit;
			  }
			*/		 
		 }

		 //选择数据库

		private function db_database(){
			$this->db_query("use {$this->database}");
			/*
		     $res=mysql_query("use {$this->database}");
		     if(!$res){
			     echo 'sql语句执行失败<br>';
			     echo '错误编号是'.mysql_errno().'<br>';
                 echo  '错误信息是'.iconv('gbk','utf-8',mysql_error());
				 exit;
			  }
			 */
		 }
         
         /*
            //执行sql语句的方法  每条SQL语句在执行过程中都可能因为sql语句有误而导致执行失败
			@param1  $sql  要执行的sql语句
			@return  $res   写操作返回bool类型 ,读操作返回结果集资源或者bool类型的false
		 */

		  private function db_query($sql){
		      $res=mysql_query($sql);
		      if(!$res){
			     echo 'sql语句执行失败<br>';
			     echo '错误编号是'.mysql_errno().'<br>';
                 echo  '错误信息是'.iconv('gbk','utf-8',mysql_error());
				 exit;
			  }
		     return $res;
		  }

		  /* 
		    插入数据操作方法
            @param1 $sql  要执行的sql语句
			@return  $id  返回执行自增ID
		  */

		  protected function db_insert($sql){
			 /*
		     $res=mysql_query($sql);   //mysql_query()执行正确的sql语句
			 if(!$res){
			     echo 'sql语句执行失败<br>';
			     echo '错误编号是'.mysql_errno().'<br>';
                 echo  '错误信息是'.iconv('gbk','utf-8',mysql_error());
				 exit;
			  }
			 */
			 if($this->db_query($sql)){
			    //获取自增ID
				 $id=mysql_insert_id();
				 return $id;
			 }  
		  }
        
	    /*
			* 删除操作
			* @param1  $sql  要删除的sql语句
            * @return  $rows  受影响的行数
		*/
        protected function db_delete($sql){
		   $res=$this->db_query($sql);
		   if($res){
		      //获取受影响的行数
		      $rows=mysql_affected_rows();
			  return $rows;
		   }
		
		}

        /*
			* 修改操作
			* @param1  $sql  要删除的sql语句
            * @return  $rows  受影响的行数
		*/
       protected function db_update($sql){
		   $res=$this->db_query($sql);
		   if($res){
		      //获取受影响的行数
		      $rows=mysql_affected_rows();
			  return $rows;
		   }
		
		}

        /*
           *  查询一条结果
           * @parameter1  $sql  查询的语句
		   * @return  $result   返回的一维关联数组
		*/

		 protected function db_selectOne($sql){
		   $res=$this->db_query($sql);
		   if($res){
		      $result=mysql_fetch_assoc($res);
		      return $result;
		   }
		}

		/*
           *  查询多条结果
           * @parameter1  $sql  查询的语句
		   * @return  $arr   返回的二维关联数组
		*/

		 protected function db_selectAll($sql){
		   $res=$this->db_query($sql);
		   if($res){
		      while($row=mysql_fetch_assoc($res)){
			     $arr[]=$row;
			  }
             return $arr;
		   }
		} 
      //这是类的结束
	 }