簡體   English   中英

如何處理PHP中sql查詢的單個結果?

[英]How do I process a single result from an sql query in PHP?

我正在使用存儲的$ _SESSION用戶名(存儲在$ username變量中)來通過PHP中的以下查詢獲取用戶的ID:

$query = mysql_query("SELECT id FROM users WHERE username = '".$username."'");

然后,我按以下方式處理查詢結果:

$userid = mysql_fetch_row($query);

因為我是作為演示用戶登錄的,所以該查詢應返回的用戶ID為:12.但是,當我回顯$ userid ['id']時,我得到以下輸出:

1111

這不是處理查詢數據的正確方法嗎? 如果我只期望一個結果,是否應該使用mysql_fetch_row()?

我也嘗試在PHPMyAdmin中運行查詢,它返回預期的結果就好了。

使用以下命令獲取結果:

    $query="SELECT id FROM users WHERE username ='$username'";
    $res=mysql_query($query);
    while($row=mysql_fetch_row($res))
    {
                $id=$row[0]; //change to the column number you are using to store id
    }

嘗試這個

   while($userid = mysql_fetch_array($query))
    {
      echo $userid['id'].'<br />';
    }

您的查詢容易受到SQL注入攻擊的影響,並且您正在使用不贊成使用的庫,這些庫將從將來的PHP版本中刪除。

我建議轉到mysqli( 文檔 ),這將通過其准備好的語句( 文檔 )幫助保護您免受注入攻擊。

您的查詢顯示正確。 如果您在PHPMyAdmin或SQL命令行中運行SELECT id FROM users WHERE username = 'demo' ,您會得到什么? usernameUNIQUE字段,還是您有兩個名為demo帳戶?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM