好的,所以我正在寻找一种简洁的方法来计算使用Doctrine DBAL的SELECT查询中的行数.
我知道我可以,SELECT COUNT(*)但是当我获取结果时,我需要对数组进行排序.或者,有人建议你去看看getScalarResult().但除了在DQL(这是一个不同的项目)之外,我似乎无法找到任何关于此的文档.
那么最好的方法是什么?我想这是因为我习惯了伟大的MySQLI属性num_rows!
Don*_*ong 18
使用Doctrine DBAL执行此操作的另一种方法是将计数作为字段并返回列
$sql = "SELECT count(*) AS Total FROM myTable WHERE myId = :myId";
$stmt = $conn->prepare($sql);
$stmt->bindValue('myId', $myId, PDO::PARAM_INT);
$stmt->execute();
$count = $stmt->fetchColumn(0);
Run Code Online (Sandbox Code Playgroud)
pen*_*uin 15
实际上我觉得我看起来真的很难,但我刚刚遇到了这个Count Records返回的MySQL学说
所以这样做的rowCount()方法是通过这个方法.
例:
$num_rows = $conn->executeQuery("SELECT * FROM users")->rowCount();
我喜欢使用查询生成器。一个例子:
$queryBuilder = $connection->createQueryBuilder();
$queryBuilder->select('COUNT(*)');
$queryBuilder->from("the_table");
$queryBuilder->where('some_column = :theValue');
$queryBuilder->setParameter('theValue', $someValue);
return (int) $queryBuilder->execute()->fetchColumn();
Run Code Online (Sandbox Code Playgroud)