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

Tags: php增删改查封装

分享到: