MySQL查询仅返回COUNT

时间:2019-01-02 14:32:31

标签: php mysql mysqli

在我的网站上,我正在执行SQL查询以填充信息。这样做的代码部分是:

$user = mysqli_real_escape_string(db_connect(),$_SESSION['UserName']);
$sqlStr = "SELECT * FROM tbl WHERE username='{$user}'";
$out = mysqli_query(db_connect(), $sqlStr);

$settings = False;
if(!(0 == mysqli_num_rows($out))){
    $settings = True;
    $res = mysqli_fetch_assoc($out);
}

给定用户只返回一行。但是,输出非常时髦。对于在数据库中具有条目的给定用户,输出如下:

mysqli_result Object ( [current_field] => 0 [field_count] => x [lengths] => Array ( [x] => x ) [num_rows] => 1 [type] => 0 )

这是正确的,但是当执行mysqli_fetch_assoc时,结果是这样的:

Array ( [COUNT] => 2 ) 

我完全无法理解它是如何返回COUNT的,更不用说2行了。数据库中甚至没有2行。任何用户名都会发生这种情况。

1 个答案:

答案 0 :(得分:0)

已找到解决方法。事先使用while()循环迭代输出。以下是工作代码:

$settings = False;
If(!(0 == mysqli_num_rows($out))){
    $settings = True;
    while($res = mysqli_fetch_assoc($out)){
        $var = $res['var'];

        break;
    }
}

,然后在整个站点中使用$ var而不是$ res ['var']。这样可以正确填充信息。这可以解决问题,尽管我最初仍然不了解是什么导致了问题。