首页 > 代码库 > PHP历程(封装的增删改查方法)

PHP历程(封装的增删改查方法)

db.class.php   主要方法

<?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 $username;        //数据库用户名    public $password;        //数据密码    public $db_name;          //数据库名    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;    }    /**     * 打开数据库连接     */    public function open()    {        $this->conn = mysql_connect($this->host,$this->username,$this->password)or die (‘数据库连接失败!</br>错误原因:‘.mysql_error());        mysql_select_db($this->db_name)or die(‘数据库选定失败!</br>错误原因:‘.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;    }}

user.class.php 操作

<?phprequire_once("./db.class.php");class User{    /**     * description_插入数据到XX     * @param $tableName     * @param $name     * @param $password     * @return int     */    public function insert($tableName,$name,$password){        $db = new DB();        $resultId = $db->insertData("$tableName",array(‘name‘,‘password‘),array($name,$password));        return $resultId;    }    /**     * @description根据ID或XXX查询一条数据,user所查询的表,id是字段名     * @param $table     * @param $name     * @param $value     * @return array|null     */    public static function getUserById($table,$name,$value){        $db = new DB();        return $db->getDataByAtr("$table",‘$name‘,$value);    }    /**     * @description根据name查询一条数据     * @param $name     * @return array|null     */    public static function getUserByName($name){        $db = new DB();        @$data = $db->QueryAll("SELECT * FROM user WHERE name = ‘".$name."‘");        if(count($data)!=0)return $data;        else return null;    }    /**     * @description_获取全部数据,调方法使用     * @param $tableName     * @return null     */    public static function QueryAll($tableName){        $db = new DB();        @$data = $db->QueryAll("select * FROM"." ".$tableName);        if(count($data)!=0) echo $data;        else return null;    }    /**     * @description_获取全部数据,通讯使用     * @param $tableName     */    public static function QueryAllJson($tableName){        $db = new DB();        @$data = $db->QueryAllJson("SELECT * FROM ".$tableName."");        if(count($data)!=0) echo $data;        else echo false;    }    /**     * description分页查询,返回Json格式。通讯用,echo     * @param $start     * @param $count     */    public static function QueryWithPage($start,$count){        $db = new DB();        @$data = $db->QueryAllJson("select id,name,password from user order by id limit"." ".$start.",".$count);        if(count($data)!=0) echo $data;        else echo false;    }    /**     * @description_删除数据,根据ID,user是表名,id是....     * @param $tableName     * @param $name     * @param $value     * @return bool     */    public static function deleteByUid($tableName,$name,$value){        $db = new DB();        if($db->delete("$tableName","$name",$value)) return true;        else return false;    }}

test.php  测试

<?phpheader("Content-Type:text/html; charset=utf8");require_once("./user.class.php");$user = new User();//$user->insert(‘asssss‘);//$user->getUserById(1);//$userA = User::getUserById(1);//$userB = User::QueryWithPage(6,10);//$userB = User::QueryAllJson(‘user‘);//$user=$user->insert(‘user‘,‘www‘,‘sd‘);//$userB = User::deleteByUid(‘user‘,‘id‘,7);//foreach ($user as $u) {//    echo json_encode(array("result"=>"success","date"=>"asd"));//}//构造函数被注释掉了,如果有构造函数