如何解决通过PHP获取MSSQL Server中最后输入的ID
你好,我需要一点帮助。
我有一个MSSQL Server,我需要最后输入的ID。
我的PHP代码是:
$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查询"Select IDENT_CURRENT('dbo.Person')"
可以正常工作并给出正确的答案-(33)。
我的错误在哪里?在此先感谢:)
解决方法
您需要从执行的查询uisng sqlsrv_fetch_array()
中获取数据。如文档中所述,函数sqlsrv_query()
returns是语句资源,如果无法创建和/或执行语句,则为false
。
作为旁注,请始终检查sqlsrv_connect()
和sqlsrv_query()
调用的结果。
<?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;
...
?>
,
sqlsrv_query
returns returns a statement resource on success and FALSE if an error occurred。
您可以使用sqlsrv_fetch_object
访问结果。
$sqlnextid = "SELECT IDENT_CURRENT('dbo.Person') AS LastId"
$result = sqlsrv_query($conn,$sqlnextid);
$row = sqlsrv_fetch_object($result)
echo $row->LastId;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。