假设我有一个由三列组成的数据库表 - Userid,Username&密码。我们假设我正在构建一个登录表单,密码以加密形式存储。因此,在将其与原始密码进行比较之前,需要对其进行一些处理。
因此,我让用户在表单中输入用户名和密码。
include('db.php');
$getuid = $connection->prepare('SELECT FROM users WHERE username = :u');
$getuid->execute(array("u" => $_REQUEST['username']));
现在,我已经执行了该语句,并且选择了带有输入用户名的行。
我想做什么?
选择行后,我希望相应的密码(以加密形式)和Userid存储在$pass
,$userid
个变量中。我怎么能这样做?
答案 0 :(得分:1)
select
查询必须为$getuid = $connection->prepare('SELECT * FROM users WHERE username = :u');
,其中*
选择/获取表用户的所有列。
然后根据列名(用户名,并说出pwd)遍历结果,得到相应的值,如下所示:
$results = $stmt->fetch(PDO::FETCH_ASSOC);
foreach ( $results as $v) {
$username = $v['username'];
$pwd = $v['pwd'];
}
注意:您无法检索原始密码或已解码密码,其解释很清楚here
答案 1 :(得分:0)
如果用户输入用户名为uname,则使用此查询获取
select password,userid from users where user_name=uname