当把一个新用户插入数据库时,我想散列密码。这就是我所拥有的。
static function getLastId(){
global $database;
$sql = SELECT ID from users ORDER BY id DESC LIMIT 1 ;
$result = $database->query($sql);
return $result;
}
static function create_user($username,$password ){
global $database;
$lastID = self::getLastId() + 1;
$ePassword = $database->escape_value($password);
$hash = hash( sha256 , $lastID . $ePassword);
$sql = "INSERT INTO ". self::$table_name . " (username, password, first_name, last_name, power ) VALUES ";
$sql .= "( {$database->escape_value($username)} , {$hash} , asd , asd , user ) ";
$query = $database->query($sql);
return ($query)? true : false;
}
当我打印或var转储$lastID时,我得到13。然而,在数据库中,我只有一个ID为1的用户。我甚至缩短了表格,但我仍然得到了13。不知道为什么。
基本上,我的想法是,我想把$lastID附加到密码中,这样就更难逆转了。出于登录目的,我需要知道下一个ID是什么。