获取php中mysql行的计数

sigwle7e  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(333)

在下面的代码中当我 var_dump($result) 我可以看到我想要的数据在里面。。。但我还没能做到。
代码:

try {   
    $query = new dbquery(Connection::make($dbconfig['dbinfo']));
    $count = $query->runSQL("select count(*) from table_name");

    $result = $count->fetchAll();
    var_dump($result);
    echo $result[0];
    echo $result[1];
}
catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

sql语句:

public function runSQL($sql, $params = NULL) {
    //Prepares the SQL Statement you pass through
    $statement = $this->pdo->prepare($sql);

    //Binds the Parameters I pass through on execute, so no need for seperate $statement->bindParam()
    $statement->execute($params);

    //Returns the statement.
    return $statement; 
}

变量转储输出:

array(1) { [0]=> array(2) { ["count(*)"]=> string(1) "3" [0]=> string(1) "3" } } Array

这是最重要的 ["count(*)] 我需要的钥匙,价值 3 我试过以下方法,但没有一个给我正确的值:

echo $result[0];
echo $result[1];
echo $result['count(*)'];

谁能告诉我哪里出错了,我只想知道行数。

mdfafbf1

mdfafbf11#

你得到的结果是数组中的数组。您可以执行以下操作:

echo $result[0][0];

或者

echo $result[0]['count(*)'];

请注意,为了更好的可读性,在查询中使用别名是一个好习惯。例如, COUNT(*) 可以化名为 total_count :

$count = $query->runSQL("select count(*) AS total_count from table_name");

现在,您可以访问总行数,如下所示:

echo $result[0]['total_count'];
c8ib6hqw

c8ib6hqw2#

获取行数的sql命令是

select count(*) as alias from table_name
wvt8vs2t

wvt8vs2t3#

在只返回1行的情况下,需要避免使用fetchall(count、sum或任何group函数)
你可以用

echo $result[0][0];

或者

$result = $count->fetchOne(); #or $count->fetch(); read the docs to the right method
echo $result[0];

相关问题