您的位置:首页 > 编程语言 > PHP开发

技能测试1:面向对象编码实现用户注册

2017-12-06 16:06 323 查看
个人自定义一个用户注册类完成数据库的连接和入库:

1.面向对象的思想就是一个动作交给某一个具体的方法去实现

2.通过php连接数据库插入数据前记得设置$pdo->query("SET NAMES utf8"),否则中文插入后会在数据库中显示乱码;

<?php

    header("Content-type:text/html;charset=utf-8");

    class User{

        private $conn;//数据库连接资源

        private $error;//数据有效性验证

        //公有方法完成调用账户注册

        function doreg($arr){

            //数据库的连接

            $this->conn();

            //数据的验证

            $yan=$this->validate($arr);

            if(!$yan){

                echo $this->error;

                die();

            }

            //数据入库

            $res=$this->add($arr);

            if($res){

                echo "数据添加成功!<br>";

            }else{

                echo "数据入库失败!<br>";

            }

        }

        //数据库连接

        private function conn(){

            //通过PDO完成数据库的连接

            $user='root';

            $pwd='';

            try{

                $this->conn=new PDO('mysql:host=localhost;dbname=test',$user,$pwd);

                echo "数据库连接成功!"."<br>";

            }catch(PDOException $e){

                echo "数据库连接失败!".$e->getMessage()."<br>";

                die();

            }    

        }

        //表单提交验证

        private function validate($arr){

            $username=$arr['username'];

            $age=$arr['age'];

            //验证账号

            if(!preg_match('/^[_0-9a-zA-Z]{6,12}$/',$username)){

                $this->error="账号输入不合法";

                return false;

            }

            //输入年龄验证

            if($age>=1&&$age<=150){

                return true;

            }else{

                $this->error= "年龄输入不合法";

                return false;

            }

            //其他验证省略,哈哈笑哭!

        }

        //数据插入

        private function add($arr){

            //设置php插入数据库字符集为utf-8

            $this->conn->query("SET NAMES utf8");

            $sql="insert into user(username,caname,sex,age,mail,phone)values(?,?,?,?,?,?)";

            $stmt=$this->conn->prepare($sql);

            $res=$stmt->execute(array($arr['username'],$arr['caname'],$arr['sex'],$arr['age'],$arr['mail'],$arr['phone']));

            return $res;

        }

    }

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 面向对象 数据库
相关文章推荐