获取PHP中Mysql行的计数

时间:2018-10-03 12:55:29

标签: php mysql pdo

在下面的代码中,当我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; 
}

var_dump的输出:

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(*)'];

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

3 个答案:

答案 0 :(得分:1)

结果是将数组放入数组中。您可以执行以下操作:

echo $result[0][0];

OR

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

请注意,这是在查询中进行Aliasing的习惯,以提高可读性。例如,COUNT(*)可以别名为total_count

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

现在,您可以按以下方式访问总行数:

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

答案 1 :(得分:1)

在仅返回1行(COUNT,SUM或任何组函数)的情况下,您需要避免使用fetchAll

您可以使用

myGenericMethod

echo $result[0][0];

答案 2 :(得分:0)

获取行数的SQL命令是

select count(*) as alias from table_name