【问题标题】:Get ID of row in SQLSRV获取 SQLSRV 中的行 ID
【发布时间】:2012-01-26 21:50:40
【问题描述】:

我在 PHP 中有这个语句

while( $row = sqlsrv_fetch_object( $stmt)) 
                {...

它返回结果的每一行中的下一个对象。我想知道的是,结果本身是否存在标识符。我自己在表中有一个 ID,但我想知道返回的特定结果是否有一个 ID。

编辑:如果没有,除了支持此功能的 sqlsrv_fetch_object 之外,我还可以使用其他替代功能吗?

【问题讨论】:

  • 非常简短的回答:不,没有。
  • 除了支持此功能的 sqlsrv_fetch_object 之外,我还可以使用其他功能吗?
  • 你想让额外的 id 成为结果集的一部分,还是让你的 php 对象为单独的行添加一些额外的 id 属性?
  • 我希望它成为结果的一部分,例如,如果它是一个数组,我可以引用它的索引。
  • 您可以在任何查询中使用窗口函数 ROW_NUMBER() 为各个结果集生成唯一 ID (SQL server 2008)

标签: php sql sql-server sqlsrv


【解决方案1】:

不确定结果的标识符是什么意思(哪个结果?)。你是说$stmt?该功能的替代方法是sqlsrv_fetch_array($stmt)

例如:

$counter = 0;
while( $row = sqlsrv_fetch_array( $stmt))
{
  //process row
  $counter++;
}

【讨论】:

  • while( $row = sqlsrv_fetch_array( $stmt)) {... 我已经更改了代码并改为使用 fetch 数组,如何访问数组的索引?所以,$row 所在的行...
  • @Zizo47 $stmt 数组的索引?您可以按照 @Mithrandir 所说的在查询中使用 ROW_NUMBER() 进行操作,或者在您的 while 循环中使用计数器变量(如我的示例编辑)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 2019-05-11
  • 2020-02-26
  • 1970-01-01
  • 2018-02-16
  • 2019-09-12
相关资源
最近更新 更多