php数据库的类

来源:互联网 发布:有人买过淘宝店吗 编辑:程序博客网 时间:2024/06/06 02:21
<?php    header('content-type:text/html;charset=utf-8');     //配置项    define('HOST','localhost');    define('USER','root');    define('PASS','');    define('CHARSET','utf8');    define('DBNAME', 'lamp');     //类的声明    class Model{         //成员属性        private $tableName;//表明        private $fields;//当前表的所有的字段信息        private $pk;//主键信息        private $where = '';//条件字符串        private $field = '';//字段字符串        private $limit = '';//条数限定字符串          //构造方法        public function __construct($tableName){            $this->tableName = $tableName;            //连接            @mysql_connect(HOST,USER,PASS) or die('数据库连接失败');            //选择数据库            mysql_select_db(DBNAME) or die('选择数据库失败');            //设定字符集            mysql_set_charset(CHARSET) or die('字符集设定失败');            //获取字段信息            $this->getAllFields();        }         //获取表的所有字段信息        public function getAllFields(){            //拼接sql            $sql = "desc ".$this->tableName;            //发送            $result = mysql_query($sql);            //判断            if($result){                $res = array();                $pk = "";//主键                while($row = mysql_fetch_assoc($result)){                    //提取主键                    if($row['Key'] =="PRI"){                        $pk = $row['Field'];                    }else{//如果不是主键 压入数组                        $res[] = $row['Field'];                    }                }                //将字段信息存入属性中                $this->fields = $res;                $this->pk = $pk;            }        }         // 数据添加操作            // array('username'=>'admin','password'=>'admin');            //                      ||            //                      ||            //                      \/            // insert into user (username,password)values('admin','admin');        public function add($arr){            //筛选            foreach($arr as $k=>$v){                //检测                if(!in_array($k, $this->fields)){                    unset($arr[$k]);                }            }             //获取所有的键名            $keys = array_keys($arr);            //拼接键名的sql指令            $keys_sql = implode(',', $keys);            //获取所有的键值            $values = array_values($arr);            //拼接键值的sql            $values_sql = implode('","', $values);            $values_sql = '"'.$values_sql.'"';             //准备sql指令            $sql = "insert into ".$this->tableName." (".$keys_sql.")values(".$values_sql.")";            //执行发送            $result = mysql_query($sql);             // /处理结果            if($result){                return mysql_insert_id();            }else{                return false;            }        }         //删除操作        public function delete($id){            //拼接sql            $sql = "delete from ".$this->tableName." where ".$this->pk."=".$id;            //发送            $result = mysql_query($sql);            //处理结果            if($result){                //返回受影响的函数                return mysql_affected_rows();            }else{                return false;            }        }         // 修改            // array('username'=>'admin','password'=>'admin','id'=>1);            // update user set username='admin',password="admin" where id=1;        public function save($arr){            //筛选            foreach($arr as $k=>$v){                //如果不在字段数组中                if(!in_array($k, $this->fields)){                    //如果键名不等于主键名                    if($k != $this->pk){                        unset($arr[$k]);                    }                }            }             $sql = "";            $where = "";//where uid = 1;            //拼接sql  array('username'=>'admin','password'=>'admin','uid'=>1);            foreach($arr as $k=>$v){                //如果是主键                if($k == $this->pk){                    $where = " where ".$this->pk." = ".$v;                }else{                    $sql .= $k."='".$v."',";                }            }            $sql = rtrim($sql,',');            //检测是否有条件            if($where == ''){                die('不允许没有条件的更新');            }            //拼接sql            $allSql = "update ".$this->tableName." set ".$sql.$where;             //执行            $result = mysql_query($allSql);            if($result){                return mysql_affected_rows();            }else{                return false;            }        }         //查询            // select * from user where uid = 56        public function find($id){            //拼接sql            $sql = "select * from ".$this->tableName." where ".$this->pk." = ".$id;            //发送            $result = mysql_query($sql);            //判断            if($result){                $res = mysql_fetch_assoc($result);                return $res;            }else{                return false;            }        }         //查询多条数据            // $user->where("id>10")->field()->limit('1,9')->select();        public function select(){            //检测条件            $w = "";            if($this->where != ''){                $w = " where ".$this->where;            }            //检测字段            $f = "";            if($this->field != ''){                $f = $this->field;            }else{                $f = '*';            }             // /检测条数限定            $l = "";            if($this->limit != ''){                $l = " limit ".$this->limit;            }             //清空指令            $this->where = '';            $this->field = '';            $this->limit = '';              //拼接sql            $sql = "select ".$f." from ".$this->tableName. $w .$l;            // echo $sql;                      //发送sql指令            $result = mysql_query($sql);            //判断            if($result){                $res = array();                while($row = mysql_fetch_assoc($result)){                    $res[] = $row;                }                return $res;            }else{                return false;            }        }         //声明where方法        public function where($w){            $this->where = $w;            return $this;        }         //声明field方法        public function field($f){            $this->field = $f;            return $this;        }         //声明limit方法        public function limit($l){            $this->limit = $l;            return $this;        }         //获取表条数总数        public function count(){            //拼接sql            $sql = "select count(*) as total from ".$this->tableName;            //发送            $result = mysql_query($sql);            //判断            if($result){                $res = mysql_fetch_assoc($result);                return $res['total'];            }else{                return false;            }        }      }     //实例化对象    // $user = new Model('user');     //添加操作    // $arr = array('username'=>'admin','password'=>'admin','a'=>100);    // $res = $user->add($arr);     //删除    // $res = $user->delete(10000);    // var_dump($res);     //更新操作    // $arr = array('username'=>'admin','password'=>'admin','uid'=>1,'a'=>100);    // $user->save($arr);     //查询单条数据    // $res = $user->find(59000);     //查询多条数据    // $res = $user->where('uid>10')->field('uid,username,password')->limit(10)->select();    // var_dump($res);     // $res2 = $user->select();    // var_dump($res2);     //获取总数    // $count = $user->count();    // var_dump($count);   ?>

0 0