1

是否可以找到最后一个循环的时间:

$stmt = $connection->stmt_init();

if ($stmt->prepare("SELECT `ProductId` FROM Products"))
{
    $stmt->execute();
    $stmt->bind_result($product_id);

    while($stmt->fetch())
    {
       if ($lastloop)
       {
          echo 'The last id is -> ';
       }

       echo $product_id.'<br />';
    }
}

我想输出类似:

1
2
...
9
最后一个 id 是 -> 10

4

2 回答 2

1

您可以保持计数并与行数进行比较

$stmt->store_result();
$rows = $stmt->num_rows;
$count = 1;
while( $stmt->fetch() ) {
    if( $count == $rows ) {
        echo 'The last id is -> ';
    }
    $count ++;
    echo $product_id . '<br />';
}
于 2013-07-19T14:01:37.910 回答
1
  1. 您可以使用$stmt->num_rows^,但前提是您$stmt->store_result()使用结果集并继续计算活动行偏移量。存储结果对于大型集合是不可行的。
  2. 在此答案中使用SELECT SQL_CALC_FOUND_ROWS ProductId FROM Products;like ^。然后用于在不存储结果集的情况下知道行号。需要一个额外的查询......这是一个很小的代价。FOUND_ROWS()

这就是您所拥有的可行且简单的解决方案。

于 2013-07-19T14:05:05.870 回答