首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过PHP获取MSSQL Server中最后一个Entery的ID

通过PHP获取MSSQL Server中最后一个Entery的ID
EN

Stack Overflow用户
提问于 2020-09-16 16:53:40
回答 2查看 42关注 0票数 0

你好,我需要一点帮助。

我有一个MSSQL Server,我需要最后一个Entery的ID。

我的PHP代码是:

代码语言:javascript
运行
复制
$conn = sqlsrv_connect( $serverName, $connectionInfo);

$sqlnextid = "Select IDENT_CURRENT('dbo.Person')";
echo $sqlnextid;
$nextid = sqlsrv_query( $conn, $sqlnextid );
echo $nextid;

不幸的是,在SQL Management Studio中,$nextid只返回"Resource id#3",而不是正确的ID。sql query "Select IDENT_CURRENT('dbo.Person')"运行良好,并给出正确答案- (33)。

我的错误在哪里?提前感谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-16 17:02:30

您需要从sqlsrv_fetch_array()执行的查询中获取数据。正如文档中所解释的,如果语句无法创建和/或执行,则函数sqlsrv_query() returns语句资源或false

作为附注,请始终检查sqlsrv_connect()sqlsrv_query()调用的结果。

代码语言:javascript
运行
复制
<?php

...
// Connection
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    echo "Error (sqlsrv_connect): ".print_r(sqlsrv_errors(), true);
    exit;
}

// Query
$sqlnextid = "SELECT IDENT_CURRENT('dbo.Person') AS [CurrentIdent]";
$stmt = sqlsrv_query( $conn, $sqlnextid );
if( $stmt === false ) {
    echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
    exit;
}

// Data
$ident = 0;
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    $ident = $row["CurrentIdent"];
}
echo $ident;
...

?>
票数 0
EN

Stack Overflow用户

发布于 2020-09-16 17:05:39

sqlsrv_query returns returns a statement resource on success and FALSE if an error occurred.

您可以使用sqlsrv_fetch_object访问结果。

代码语言:javascript
运行
复制
$sqlnextid = "SELECT IDENT_CURRENT('dbo.Person') AS LastId"
$result = sqlsrv_query($conn, $sqlnextid);
$row = sqlsrv_fetch_object($result)
echo $row->LastId;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63916512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档