1

我正在使用存储的 $_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 中运行查询,它返回了预期的结果就好了。

4

3 回答 3

1

使用以下方法获取结果:

    $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
    }
于 2013-05-03T15:34:11.160 回答
0

尝试这个

   while($userid = mysql_fetch_array($query))
    {
      echo $userid['id'].'<br />';
    }
于 2013-05-03T15:38:45.760 回答
0

您的查询容易受到SQL 注入攻击,并且您正在使用已弃用的库,这些库将从 PHP 的未来版本中删除。

我建议转移到 mysqli(文档),这将有助于保护您免受其准备好的语句(文档)的注入攻击。

您的查询显示正确。如果你SELECT id FROM users WHERE username = 'demo'在 PHPMyAdmin 或 SQL 命令行中运行,你会得到什么?是username一个UNIQUE字段还是您有两个帐户demo

于 2013-05-03T15:44:19.710 回答