register 返回的是正常的时间,但是login能够正常返回username和id,时间是0000-00-00

来源:3-6 用户业务逻辑

fengshunsgit

2017-06-24 15:50

http://img.mukewang.com/594e19a000016fe007140113.jpg


register 返回的是正常的时间,但是login能够正常返回username和id,时间是0000-00-00

写回答 关注

3回答

  • hen_nam
    2017-07-21 20:31:37

    created_at 字段是 DATETIME 类型,似乎需要存储日期时间格式的字符串。

    我进行了以下修改:

    public function register($username, $password)

    {

        ......

        $createdAt = date('Y-m-d H:i:s');

        ......

    }

    枫叶咚咚咚

    我要是报错的时候看见这个答案就好了,自己排错排了半天。。orz

    2019-01-20 12:30:47

    共 1 条回复 >

  • fengshunsgit
    2017-06-24 15:51:42

    <?php
    /**
    * Created by PhpStorm.
    * User: lee
    * Date: 6/18/2017
    * Time: 3:18 PM
    */

    require __DIR__.'/lib/User.php';
    $pdo=require __DIR__.'/lib/db.php';
    $user=new User($pdo);
    //

    print_r($user->register('admin5','1111'));
    echo "<br>";
    print_r($user->login('admin5','1111'));
    //echo time();



  • fengshunsgit
    2017-06-24 15:51:15
    <?php
    /**
     * Created by PhpStorm.
     * User: lee
     * Date: 6/18/2017
     * Time: 3:20 PM
     */
    require __DIR__.'/ErrorCode.php';
    class User
    {
        /**
         * 数据库链接句柄
         * @var
         */
    
        private $_db;
    
        /**
         * 构造方法
         * User constructor.
         * @param $_db
         */
    
    
        public function __construct($_db)
        {
            $this->_db=$_db;
        }
    
        /**
         * 用户登陆
         * @param $username
         * @param $password
         */
        public function login($username,$password)
        {
            $sql='select * from `user` where `username`=:username and `password`=:password';
            $password=$this->_md5($password);
            $stmt=$this->_db->prepare($sql);
            $stmt->bindParam(':username',$username);
            $stmt->bindParam(':password',$password);
            $stmt->execute();
            $user=$stmt->fetch(PDO::FETCH_ASSOC);
            if(empty($user)){
                throw new Exception('USERNAME_OR_PASSWORD_INVALID',ErrorCode::USERNAME_OR_PASSWORD_INVALID);
            }
            unset($user['password']);
            return $user;
        }
    
        /**
         * 用户注册
         * @param $username
         * @param $password
         */
        public function register($username,$password)
        {
            if(empty($username)){
                throw new Exception('USERNAME_CANNOT_EMPTY',ErrorCode::USERNAME_CANNOT_EMPTY);
            }
    
    
            if(empty($password)){
                throw new Exception('PASSWORD_CANNOT_EMPTY',ErrorCode::PASSWORD_CANNOT_EMPTY);
            }
    
            if($this->_isUsernameExists($username)){
                throw new Exception('USERNAME_EXISTS',ErrorCode::USERNAME_EXISTS);
            }
    
            //写入数据库
    
            $sql='INSERT INTO `user` (`username`,`password`,`createdAt`) values (:username,:password,:createdAt)';
            $createdAt=time();//插入mysql变成00000  print_r($stmt);
    
            $password=$this->_md5($password);
            $stmt=$this->_db->prepare($sql);
            $stmt->bindParam(':username',$username);
            $stmt->bindParam(':password',$password);
            $stmt->bindParam(':createdAt',$createdAt);
            //echo $createdAt;
            //print_r($stmt);
    
            if(!$stmt->execute()){
                throw new Exception('fail',ErrorCode::REGISTER_FAIL);
            }
    
            return [
                'userId'=>$this->_db->lastInsertId(),
                'username'=>$username,
                'createdAt'=>$createdAt
            ];
    
    
        }
    
        private function _md5($string,$key='imooc')
        {
            return md5($string.$key);
        }
    
        private function _isUsernameExists($username)
        {
            $sql='SELECT * from `user` where `username`=:username';
            $stmt=$this->_db->prepare($sql);
            $stmt->bindParam(':username',$username);
            $stmt->execute();
            $result=$stmt->fetch(PDO::FETCH_ASSOC);
            return !empty($result);
        }
    }


Restful API实战

PHP后端开发者如何迎上移动互联网发展热潮?

44103 学习 · 123 问题

查看课程

相似问题