首页 > 代码库 > 项目准备(model)

项目准备(model)

user model manage

<?php    /**     * UserModelManager is a class used to manage UserModel class     * @author liupengcheng     * @date 2014-3-3     */    class UserModelManager{        private $dao;        private $_si;        private $db_name;        private $table_name;        private $table_apply;                public function __construct(){                $this->dao = new DAO();                $this->_si = new SqlIntepreter();                $this->db_name=Loader::loadConfigs(‘db_usermodel‘,‘db1‘);                $this->table_name=Loader::loadConfigs(‘db_usermodel‘,‘table1‘);                $this->table_apply=Loader::loadConfigs(‘db_usermodel‘,‘table2‘);        }                public function userExist($user_name, $password){            $select =array();            array_push($select,‘user_name‘);            array_push($select,‘password‘);                    try{                $this->dao->connect();  //连接数据库                $this->dao->selectDB($this->db_name); //选择数据库            }catch(Exception $e){                throw $e;            }            $where = array(‘user_name‘=>$user_name,‘password‘=>$password);            //重置状态            $this->_si->renew();            $sqlstat = $this->_si->select($select)->from($this->table_name)->where($where)->getSql();   //构造sql语句            $result=$this->dao->execute($sqlstat);            $n = mysql_num_rows($result);            mysql_close();            if ($n>0) {                return true;            }            return false;                    }        /**         *          * @param $user_name         * @param $password         * @param string $limit must be integer         * @throws Exception         * @return resource         */        public function getUsers($user_name,$password,$limit=null){            $select=array();            array_push($select,‘user_name‘);            array_push($select, ‘password‘);            array_push($select, ‘role‘);            array_push($select,‘email‘);            array_push($select,‘comment‘);            try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }            $where = array(‘user_name‘=>$user_name,‘password‘=>$password);            //重置状态            $this->_si->renew();            if(!isset($limit)){                $sqlstat = $this->_si->select($select)->from($this->table_name)->where($where)->getSql();            }else{                $sqlstat = $this->_si->select($select)->from($this->table_name)->where($where)->limit($limit)->getSql();            }            $result = $this->dao->execute($sqlstat);            $users = mysql_fetch_array($result);            mysql_close();            return new UserModel($users);        }                public function addUser($user_name,$password,$role,$email,$comment){            $insert=array(‘user_name‘,‘password‘,‘role‘,‘email‘,‘comment‘);            $values = array(‘user_name‘=>$user_name,‘password‘=>$password,‘role‘=>$role,‘email‘=>$email,‘comment‘=>$comment);            //重置状态                        $this->_si->renew();            $sqlstat = $this->_si->insert($this->table_name, $insert)->values($values)->getSql();                        try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }            $result=$this->dao->execute($sqlstat);            if(mysql_affected_rows()>0){                mysql_close();                return true;            }            return false;        }                public function delUser($id){            $where=array(‘id‘=>$id);            //重置状态            $this->_si->renew();            $sqlstat = $this->_si->delete($this->table_name)->where($where);            try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }            $result = $this->dao->execute($sqlstat);            if(mysql_affected_rows()>0){                mysql_close();                return true;            }            else                return false;        }                public function userNameAvailable($user_name){            try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }                                    $user_table = true;            $apply_table = true;            $where = array(‘user_name‘=>$user_name);                        //重置状态            $this->_si->renew();            $sqlstat = $this->_si->select()->from($this->table_name)->where($where)->getSql();            $result = $this->dao->execute($sqlstat);                        if(mysql_num_rows($result)>0){                $user_table = false;            }                        $this->_si->renew();            $sqlstat = $this->_si->select()->from($this->table_apply)->where($where)->getSql();            $result = $this->dao->execute($sqlstat);                            if(mysql_num_rows($result)>0){                $apply_table = false;            }                        mysql_close();                        if($user_table && $apply_table){                return true;            }else{                return false;            }                    }                public function updateBasicInfo($role=‘‘, $email=‘‘, $comment=‘‘){            session_start();            $sqlstat=null;            if(isset($_SESSION[‘user_name‘])&&!empty($_SESSION[‘user_name‘])){                $where=array(‘user_name‘=>$_SESSION[‘user_name‘]);                $params=array();                $role = empty($role)? $_SESSION[‘role‘]:$role;                $email = empty($email) ? $_SESSION[‘email‘]:$email;                $comment = empty($comment)? $_SESSION[‘comment‘]:$comment;                $params=array(‘role‘=>$role,‘email‘=>$email,‘comment‘=>$comment);                //重置状态                $this->_si->renew();                $sqlstat=$this->_si->update($this->table_name)->set($params)->where($where)->getSql();            }else{                throw new Exception("Error: session expired");                }            try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }            $result=$this->dao->execute($sqlstat);            if(mysql_affected_rows()>0){                mysql_close();                return true;            }else                 return false;        }                public function passUpdate($pass, $newPass){            session_start();            $sqlstat=null;            if(isset($_SESSION[‘user_name‘])&&!empty($_SESSION[‘user_name‘])){                $where=array(‘user_name‘=>$_SESSION[‘user_name‘],‘password‘=>$pass);                $set=array(‘password‘=>$newPass);                //重置状态                $this->_si->renew();                $sqlstat=$this->_si->update($this->table_name)->set($set)->where($where);            }else{                throw new Exception(‘Error: session expired‘);            }            try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }            $result = $this->dao->execute($sqlstat->getSql());            if(mysql_affected_rows()>0){                mysql_close();                return true;            }else                 return false;        }                        public function getapplycount(){   //获得apply表的个数-hss            try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }                            $this->_si->renew();                            $sqlstat = $this->_si->select()->from($this->table_apply)->getSql();   //构造sql语句            //return $sqlstat;            $result=$this->dao->execute($sqlstat);   //数据库执行的问题                            $n = mysql_num_rows($result);            mysql_close();                            return $n;        }                public function getApplyUserInfo(){            try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }//             //重置状态            $this->_si->renew();            if(!isset($limit)){                $sqlstat = $this->_si->select()->from($this->table_apply)->getSql();            }else{                $sqlstat = $this->_si->select()->from($this->table_apply)->limit($limit)->getSql();            }                        $result = $this->dao->execute($sqlstat);                        $users=array();                        $user=array();                while($row = mysql_fetch_array($result)){                $user[‘name‘]=$row["user_name"];                $user[‘role‘]=$row["role"];                if(isset($row["email"])){                    $user[‘email‘]=$row["email"];                }else{                    $user[‘email‘]="";                }                if(isset($row["comment"])){                    $user[‘comment‘]=$row["comment"];                }else{                    $user[‘comment‘]="";                }                array_push($users, $user);            }                        mysql_close();            return json_encode($users);        }                //把申请用户从apply_info中转到user_info中,删除apply_info中的这些用户        public function addApplyUser($names){            try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }                        $add_user_info = array();            $opera_status = true;            //从apply_info中读取申请用户,并删除这些申请用户            foreach ($names as $name){                $this->_si->renew();                $where = array(‘user_name‘=>$name);                                //读用户                $sqlstat = $this->_si->select()->from($this->table_apply)->where($where)->getSql();                $read_result = $this->dao->execute($sqlstat);                                $user= mysql_fetch_array($read_result);                $read_state = false;                if(mysql_affected_rows()>0){                    $read_state = true;                }                array_push($add_user_info, $user);                                //删除用户                $this->_si->renew();                $sqlstat = $this->_si->delete($this->table_apply)->where($where)->getSql();                $delete_result = $this->dao->execute($sqlstat);                $delete_state = false;                if(mysql_affected_rows()>0){                    $delete_state = true;                }                                if(!($read_state && $delete_state)){                    $opera_status = false;                    break;                }            }                        //添加apply_info中读取的用户到users_info中            foreach ($add_user_info as $user){                $insert=array(‘user_name‘,‘password‘,‘role‘,‘email‘,‘comment‘);                $values = array(‘user_name‘=>$user[‘user_name‘],                                    ‘password‘=>$user[‘password‘],                                    ‘role‘=>$user[‘role‘],                                    ‘email‘=>$user[‘email‘],                                    ‘comment‘=>$user[‘comment‘]);                                                $this->_si->renew();                $sqlstat = $this->_si->insert($this->table_name, $insert)->values($values)->getSql();                $result=$this->dao->execute($sqlstat);                if(!(mysql_affected_rows()>0)){                    $opera_status = false;                    break;                }            }            mysql_close();            //重置状态            return $opera_status;                        }                //把申请用户从apply_info中删除        public function  deleteApplyUser($names){            try{                $this->dao->connect();                $this->dao->selectDB($this->db_name);            }catch(Exception $e){                throw $e;            }                            $add_user_info = array();            $delete_state = true;            //从apply_info中读取申请用户,并删除这些申请用户            foreach ($names as $name){                $this->_si->renew();                $where = array(‘user_name‘=>$name);                            //删除用户                $this->_si->renew();                $sqlstat = $this->_si->delete($this->table_apply)->where($where)->getSql();                $delete_result = $this->dao->execute($sqlstat);                             if(!(mysql_affected_rows()>0)){                    $delete_state = false;                    break;                }            }            mysql_close();            //重置状态            return $delete_state;        }    }

 

项目准备(model)