2012-09-27 47 views
1

假設我有一個由三列組成的數據庫表 - 用戶名爲,用戶名爲&的密碼。假設我正在構建登錄表單,並且密碼以加密形式存儲。因此,在將其與原始密碼進行比較之前,需要對其進行一些處理。在PDO/MySQL中獲取同一行的下一列的下一個元素?

所以,我讓用戶在表單中輸入用戶名和密碼。

include('db.php');  
$getuid = $connection->prepare('SELECT FROM users WHERE username = :u'); 
$getuid->execute(array("u" => $_REQUEST['username'])); 

現在,我已經執行了該語句,並選擇了輸入用戶名的行。

我想做什麼?

選擇行後,我想將相應的密碼(它是加密形式)和用戶標識存儲在$pass,$userid變量中。我怎樣才能做到這一點?

回答

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

+0

非常感謝你。這正是我在找的東西。 – Rohitink

+0

不客氣。 –

0

如果用戶輸入用戶名作爲UNAME,然後使用該查詢來獲取

select password,userid from users where user_name=uname 
+0

而且,如何存儲選定的密碼和用戶ID? – Rohitink

+0

在PHP我不知道如何得到那 – AnandPhadke

+0

也提到上述查詢是不正確的「$ getuid = $連接 - >準備('選擇從用戶WHERE用戶名=:u');」在這裏你沒有列或*在你的選擇聲明 – AnandPhadke