課程
/后端開發(fā)
/PHP
/Restful API實戰(zhàn)
register 返回的是正常的時間,但是login能夠正常返回username和id,時間是0000-00-00
2017-06-24
源自:Restful API實戰(zhàn) 3-6
正在回答
created_at 字段是 DATETIME 類型,似乎需要存儲日期時間格式的字符串。
我進行了以下修改:
public function register($username, $password)
{
????......
????$createdAt = date('Y-m-d H:i:s');
}
楓葉咚咚咚
<?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();
<?php /** ?*?Created?by?PhpStorm. ?*?User:?lee ?*?Date:?6/18/2017 ?*?Time:?3:20?PM ?*/ require?__DIR__.'/ErrorCode.php'; class?User { ????/** ?????*?數(shù)據(jù)庫鏈接句柄 ?????*?@var ?????*/ ????private?$_db; ????/** ?????*?構(gòu)造方法 ?????*?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); ????????} ????????//寫入數(shù)據(jù)庫 ????????$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); ????} }
舉報
PHP后端開發(fā)者如何迎上移動互聯(lián)網(wǎng)發(fā)展熱潮?
1 回答lastinsertid 如果同一時間在線注冊的人數(shù)有點多,會不會返回別人的注冊信息?
1 回答為什么不直接返回錯誤而要拋出異常呢
1 回答restful的返回狀態(tài)不是需要設計成用戶容易理解的語句嗎?為什么還是狀態(tài)碼
2 回答那種致命錯誤,如果是app接口,他們解析解析不了啊 不都是返回json格式嗎
3 回答為什么老師可以用時間戳存儲?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2017-07-21
created_at 字段是 DATETIME 類型,似乎需要存儲日期時間格式的字符串。
我進行了以下修改:
public function register($username, $password)
{
????......
????$createdAt = date('Y-m-d H:i:s');
????......
}
2017-06-24
<?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();
2017-06-24