繁体   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