PDO相当于mysql_num_rows或mssql_num_rows

loa*_*der 2 php mysql sql-server pdo mysql-num-rows

我知道之前已经问过这个问题,但似乎解决方案已经针对所提出的问题.

我有一个包含数百个实例的代码库,其中使用了mssql_num_rows.

代码示例:

$db->execute($sql);

if ($db->getRowsAffected() > 0) {
    $total = $db->fetch();
Run Code Online (Sandbox Code Playgroud)

在db类中:

$this->rowsaffected = mssql_num_rows($this->query_result);
Run Code Online (Sandbox Code Playgroud)
  • 我无法创建通用SELECT count(*) FROM table查询,因为我有太多特定的select语句.
  • 我可以运行一个preg_replace删除之间的所有内容SELECT and FROM,然后用a替换COUNT(*)并运行第二个查询,但这假设所有查询都以某种方式设置.
  • 我可以fetchAllcount()得到结果,但这意味着要升级if语句的所有实例.

那么如果人们将他们的代码更新为PDO,那么替换为*_num_rows函数的最佳方法是什么呢?不是解决特定问题的东西,而是取代*_num_rows功能的东西.如果那是不可能的,那之前是什么让它成为可能呢?

Jay*_*ard 5

如果要计算行数,可以使用PDO执行此操作:

$sql = 'select * from users';
$data = $conn->query($sql);
$rows = $data->fetchAll();
$num_rows = count($rows);
Run Code Online (Sandbox Code Playgroud)

使用SELECTPDO语句时无法直接计算行数.