当前位置:首页 > PHP教程 > php应用 > 列表

php增删改查封装

发布:smiling 来源: PHP粉丝网  添加日期:2022-06-13 09:56:44 浏览: 评论:0 

php增删改查封装

首先创建一个名为“DB”的类;然后在“DB”类的构造方法中去连接数据库;再根据连接实例进行编写增删改查操作;最后将“DB”类进行实例化并设置为全局变量即可。

封装代码:

  1. <?php 
  2.  
  3. /** 
  4.  
  5.  * 数据库配置信息 
  6.  
  7.  */ 
  8.  
  9. define('DB_HOST','127.0.0.1');            //服务器 
  10.  
  11. define('DB_USER','root');                 //数据库用户名 
  12.  
  13. define('DB_PASSWORD','123456');           //数据库密码 
  14.  
  15. define('DB_NAME','TEST');                 //默认数据库 
  16.  
  17. define('DB_CHARSET','utf8');              //数据库字符集 
  18.  
  19. define('TIMEZONE',"PRC");                 //时区设置 
  20.  
  21. date_default_timezone_set(TIMEZONE); 
  22.  
  23. /** 
  24.  
  25.  * 类名:DB 
  26.  
  27.  * 说明:数据库操作类 
  28.  
  29.  */ 
  30.  
  31. class DB 
  32.  
  33. { 
  34.  
  35.     public $host;            //服务器 
  36.  
  37.  
  38.  
  39.     public $conn;            //数据库连接变量 
  40.  
  41.     /** 
  42.  
  43.      * DB类构造函数 
  44.  
  45.      */ 
  46.  
  47.     public function DB($host=DB_HOST ,$username=DB_USER,$password=DB_PASSWORD,$db_name=DB_NAME) 
  48.  
  49.     { 
  50.  
  51.         $this->host = $host; 
  52.  
  53.         $this->username = $username; 
  54.  
  55.         $this->password = $password; 
  56.  
  57.         $this->db_name = $db_name; 
  58.  
  59.  
  60.  
  61.        $this->conn = mysql_connect($host,$username,$password) or die ('数据库连接失败!错误原因:'.mysql_error()); 
  62.  
  63.  
  64.  
  65.         mysql_select_db($db_name)or die('数据库选定失败!错误原因:'.mysql_error()); 
  66.  
  67.           
  68.  
  69.         mysql_query("SET CHARACTER SET utf8"); 
  70.  
  71.     } 
  72.  
  73.  
  74.  
  75.     /** 
  76.  
  77.      * 关闭数据连接 
  78.  
  79.      */ 
  80.  
  81.     public function close() 
  82.  
  83.     { 
  84.  
  85.         mysql_close($this->conn); 
  86.  
  87.     } 
  88.  
  89.  
  90.  
  91.     /** 
  92.  
  93.      * @description调用方法用 
  94.  
  95.      * @param $sql 
  96.  
  97.      * @return array 
  98.  
  99.      */ 
  100.  
  101.     public function QueryAll($sql) 
  102.  
  103.     { 
  104.  
  105.         $this->open(); 
  106.  
  107.         $rs = mysql_query($sql,$this->conn); 
  108.  
  109.         $objList = array(); 
  110.  
  111.         while($obj = mysql_fetch_object($rs)) 
  112.  
  113.         { 
  114.  
  115.             if($obj) 
  116.  
  117.             { 
  118.  
  119.                 $objList[] = $obj; 
  120.  
  121.             } 
  122.  
  123.         } 
  124.  
  125.         $this->close(); 
  126.  
  127.         return $objList; 
  128.  
  129.     } 
  130.  
  131.     /** 
  132.  
  133.      * description查询全部返回Json格式,通讯用 
  134.  
  135.      * @param $sql 
  136.  
  137.      * @return string 
  138.  
  139.      */ 
  140.  
  141.     public function QueryAllJson($sql) 
  142.  
  143.     { 
  144.  
  145.         echo $sql; 
  146.  
  147.         $this->open(); 
  148.  
  149.         $rs = mysql_query($sql,$this->conn); 
  150.  
  151.         $objList = array(); 
  152.  
  153.         $i=0; 
  154.  
  155.         while($obj = mysql_fetch_object($rs)) 
  156.  
  157.         { 
  158.  
  159.             $objList[$i]=$obj; 
  160.  
  161.             $i++; 
  162.  
  163.         } 
  164.  
  165.         $this->close(); 
  166.  
  167.         return json_encode(array("result"=>"success",'data'=>$objList)); 
  168.  
  169.     } 
  170.  
  171.     /** 
  172.  
  173.      * @description 插入数据到数据库中 
  174.  
  175.      * @param $tableName 表名 
  176.  
  177.      * @param array $columns 包含表中所有字段名的数组。默认空数组,则是全部有序字段名 
  178.  
  179.      * @param array $values  包含对应所有字段的属性值的数组 
  180.  
  181.      * @return int 
  182.  
  183.      */ 
  184.  
  185.     public function insertData($tableName,$columns=array(),$values=array()) 
  186.  
  187.     { 
  188.  
  189.         $sql = 'insert into '.$tableName .'( '; 
  190.  
  191.         for($i = 0; $i < sizeof($columns);$i ++) 
  192.  
  193.         { 
  194.  
  195.             $sql .= $columns[$i]; 
  196.  
  197.             if($i < sizeof($columns) - 1) 
  198.  
  199.             { 
  200.  
  201.                 $sql .= ','; 
  202.  
  203.             } 
  204.  
  205.         } 
  206.  
  207.         $sql .= ') values ( '; 
  208.  
  209.         for($i = 0; $i < sizeof($values);$i ++) 
  210.  
  211.         { 
  212.  
  213.             $sql .= "'".$values[$i]."'"; 
  214.  
  215.             if($i < sizeof($values) - 1) 
  216.  
  217.             { 
  218.  
  219.                 $sql .= ','; 
  220.  
  221.             } 
  222.  
  223.         } 
  224.  
  225.         $sql .= ' )'; 
  226.  
  227.         $this->open(); 
  228.  
  229.         mysql_query($sql,$this->conn); 
  230.  
  231.         return true; 
  232.  
  233. //      $id = mysql_insert_id($this->conn);//取得上一步操作产生的ID(2) 
  234.  
  235. //      $this->close();(2) 
  236.  
  237. //      return $id;//(2) 
  238.  
  239.     } 
  240.  
  241.     /** 
  242.  
  243.      * 通过表中的某一属性获取数据 
  244.  
  245.      */ 
  246.  
  247.     public function getDataByAtr($tableName,$atrName,$atrValue){ 
  248.  
  249.         @$data = $this->QueryAll("SELECT * FROM ".$tableName." WHERE $atrName = '$atrValue'"); 
  250.  
  251.         if(count($data)!=0)return $data; 
  252.  
  253.         return NULL; 
  254.  
  255.     } 
  256.  
  257.     /** 
  258.  
  259.      * description_ 
  260.  
  261.      * 通过表中的"id",删除记录 
  262.  
  263.      */ 
  264.  
  265.     public function delete($tableName,$atrName,$atrValue){ 
  266.  
  267.         echo $tableName; 
  268.  
  269.         $this->open(); 
  270.  
  271.         $deleteResult = false; 
  272.  
  273.         if(mysql_query("DELETE FROM ".$tableName." WHERE $atrName = '$atrValue'")) $deleteResult = true; 
  274.  
  275.         $this->close(); 
  276.  
  277.         if($deleteResult) return true; 
  278.  
  279.         else return false; 
  280.  
  281.     } 
  282.  
  283.     /** 
  284.  
  285.      * 更新表中的属性值 
  286.  
  287.      */ 
  288.  
  289.     public function updateParamById($tableName,$atrName,$atrValue,$key,$value){ 
  290.  
  291.         $db = new DB(); 
  292.  
  293.         $db->open(); 
  294.  
  295.         if(mysql_query("UPDATE ".$tableName." SET $key = '$value' WHERE $atrName = '$atrValue' ")){  //$key不要单引号 
  296.  
  297.             $db->close(); 
  298.  
  299.             return true; 
  300.  
  301.         } 
  302.  
  303.         else{ 
  304.  
  305.             $db->close(); 
  306.  
  307.             return false; 
  308.  
  309.         } 
  310.  
  311.     } 
  312.  
  313.     /* 
  314.  
  315.      * @description: 取得一个table的所有属性名 
  316.  
  317.      * @param: $tbName 表名 
  318.  
  319.      * @return:字符串数组 
  320.  
  321.      */ 
  322.  
  323.     public function fieldName($tableName){ 
  324.  
  325.         $resultName=array(); 
  326.  
  327.         $i=0; 
  328.  
  329.         $this->open(); 
  330.  
  331.         $result = mysql_query("SELECT * FROM ".$tableName); 
  332.  
  333.         while ($property = mysql_fetch_field($result)){ 
  334.  
  335.             $resultName[$i++]=$property->name; 
  336.  
  337.         } 
  338.  
  339.         $this->close(); 
  340.  
  341.         return $resultName; 
  342.  
  343.     } 
  344.  
  345. }

Tags: php增删改查封装

分享到: