好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php增删改查封装

php增删改查封装

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

封装代码:

<?php
/**
 * 数据库配置信息
 */
define('DB_HOST','127.0.0.1');  //服务器
define('DB_USER','root');  //数据库用户名
define('DB_PASSWORD','123456'); //数据库密码
define('DB_NAME','TEST');  //默认数据库
define('DB_CHARSET','utf8');    //数据库字符集
define('TIMEZONE',"PRC");  //时区设置
date_default_timezone_set(TIMEZONE);
/**
 * 类名:DB
 * 说明:数据库操作类
 */
class DB
{
    public $host;  //服务器

    public $conn;  //数据库连接变量
    /**
* DB类构造函数
*/
    public function DB($host=DB_HOST ,$username=DB_USER,$password=DB_PASSWORD,$db_name=DB_NAME)
    {
   $this->host = $host;
   $this->username = $username;
   $this->password = $password;
   $this->db_name = $db_name;

  $this->conn = mysql_connect($host,$username,$password) or die ('数据库连接失败!错误原因:'.mysql_error());

   mysql_select_db($db_name)or die('数据库选定失败!错误原因:'.mysql_error());
   
   mysql_query("SET CHARACTER SET utf8");
    }

    /**
* 关闭数据连接
*/
    public function close()
    {
   mysql_close($this->conn);
    }

    /**
* @description调用方法用
* @param $sql
* @return array
*/
    public function QueryAll($sql)
    {
   $this->open();
   $rs = mysql_query($sql,$this->conn);
   $objList = array();
   while($obj = mysql_fetch_object($rs))
   {
  if($obj)
  {
 $objList[] = $obj;
  }
   }
   $this->close();
   return $objList;
    }
    /**
* description查询全部返回Json格式,通讯用
* @param $sql
* @return string
*/
    public function QueryAllJson($sql)
    {
   echo $sql;
   $this->open();
   $rs = mysql_query($sql,$this->conn);
   $objList = array();
   $i=0;
   while($obj = mysql_fetch_object($rs))
   {
  $objList[$i]=$obj;
  $i++;
   }
   $this->close();
   return json_encode(array("result"=>"success",'data'=>$objList));
    }
    /**
* @description 插入数据到数据库中
* @param $tableName 表名
* @param array $columns 包含表中所有字段名的数组。默认空数组,则是全部有序字段名
* @param array $values  包含对应所有字段的属性值的数组
* @return int
*/
    public function insertData($tableName,$columns=array(),$values=array())
    {
   $sql = 'insert into '.$tableName .'( ';
   for($i = 0; $i < sizeof($columns);$i ++)
   {
  $sql .= $columns[$i];
  if($i < sizeof($columns) - 1)
  {
 $sql .= ',';
  }
   }
   $sql .= ') values ( ';
   for($i = 0; $i < sizeof($values);$i ++)
   {
  $sql .= "'".$values[$i]."'";
  if($i < sizeof($values) - 1)
  {
 $sql .= ',';
  }
   }
   $sql .= ' )';
   $this->open();
   mysql_query($sql,$this->conn);
   return true;
// $id = mysql_insert_id($this->conn);//取得上一步操作产生的ID(2)
// $this->close();(2)
// return $id;//(2)
    }
    /**
* 通过表中的某一属性获取数据
*/
    public function getDataByAtr($tableName,$atrName,$atrValue){
   @$data = $this->QueryAll("SELECT * FROM ".$tableName." WHERE $atrName = '$atrValue'");
   if(count($data)!=0)return $data;
   return NULL;
    }
    /**
* description_
* 通过表中的"id",删除记录
*/
    public function delete($tableName,$atrName,$atrValue){
   echo $tableName;
   $this->open();
   $deleteResult = false;
   if(mysql_query("DELETE FROM ".$tableName." WHERE $atrName = '$atrValue'")) $deleteResult = true;
   $this->close();
   if($deleteResult) return true;
   else return false;
    }
    /**
* 更新表中的属性值
*/
    public function updateParamById($tableName,$atrName,$atrValue,$key,$value){
   $db = new DB();
   $db->open();
   if(mysql_query("UPDATE ".$tableName." SET $key = '$value' WHERE $atrName = '$atrValue' ")){  //$key不要单引号
  $db->close();
  return true;
   }
   else{
  $db->close();
  return false;
   }
    }
    /*
* @description: 取得一个table的所有属性名
* @param: $tbName 表名
* @return:字符串数组
*/
    public function fieldName($tableName){
   $resultName=array();
   $i=0;
   $this->open();
   $result = mysql_query("SELECT * FROM ".$tableName);
   while ($property = mysql_fetch_field($result)){
  $resultName[$i++]=$property->name;
   }
   $this->close();
   return $resultName;
    }

}

推荐教程:《PHP教程》

以上就是php增删改查封装的详细内容,更多请关注Gxlcms其它相关文章!

查看更多关于php增删改查封装的详细内容...

  阅读:44次