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

个人自定义一个用户注册类完成数据库的连接和入库:

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;

        }
    }
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值