SQL,PDO和PHP - 条件的rowCount()函数

时间:2014-12-31 00:15:12

标签: php mysql pdo

我在Apache PHP服务器页面中运行以下SQL PDO命令:

$query = "
    SELECT
        id,
        building_name
    FROM
        campus
";

$stmt = $con->prepare($query);
$stmt->execute();
$num = $stmt->rowCount();          // HERE IS THE FUNCTION

我不想返回整个行数,而是希望rowCount()函数只返回" building_name"的行数。 =" IT House"。我似乎无法找到有关此函数的任何信息,例如它期望的参数等。任何想法如何在赋值操作中修改函数调用?提前谢谢!

注意:我知道我可以通过SELECT命令调整查询,但我不想限制查询。我需要查询来表示所有行,但我需要rowCount来表示所需的行。

2 个答案:

答案 0 :(得分:2)

您可以在此处找到rowCount的文档: http://php.net/manual/en/pdostatement.rowcount.php

您是否还在使用其他结果阻止您仅选择具有该条件的行?:

SELECT id, building_name FROM campus WHERE building_name = 'IT House'

更好的是你可以选择计数:

SELECT COUNT(*) FROM campus WHERE building_name = 'IT House'

否则,您必须遍历结果以确定符合条件的行数:

$stmt->execute();
$result = $stmt->fetchAll();
$num = 0;
foreach($result as $row) {
  if( 'IT House' == $row['building_name'] ) {
    $num++;
  }
}

答案 1 :(得分:1)

如果您不想将条件添加到SQL语句中,则需要迭代所有结果,然后根据building_name是否等于 IT House来增加计数器与否