Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP获取MSSQL服务器中最后一个Entry的ID_Php_Sql Server_Odbc_Sqlsrv - Fatal编程技术网

通过PHP获取MSSQL服务器中最后一个Entry的ID

通过PHP获取MSSQL服务器中最后一个Entry的ID,php,sql-server,odbc,sqlsrv,Php,Sql Server,Odbc,Sqlsrv,你好,我需要一点帮助 我有一个MSSQL服务器,我需要最后一个Entry的ID 我的PHP代码是: $conn = sqlsrv_connect( $serverName, $connectionInfo); $sqlnextid = "Select IDENT_CURRENT('dbo.Person')"; echo $sqlnextid; $nextid = sqlsrv_query( $conn, $sqlnextid ); echo $nextid; 不幸的是,$

你好,我需要一点帮助

我有一个MSSQL服务器,我需要最后一个Entry的ID

我的PHP代码是:

$conn = sqlsrv_connect( $serverName, $connectionInfo);

$sqlnextid = "Select IDENT_CURRENT('dbo.Person')";
echo $sqlnextid;
$nextid = sqlsrv_query( $conn, $sqlnextid );
echo $nextid;
不幸的是,$nextid只返回资源id3,而不是SQL Management Studio中的正确ID。sql查询Select IDENT_CURRENT'dbo.Person'运行良好,并给出正确答案-33


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

您需要使用sqlsrv\u fetch\u数组从执行的查询中获取数据。如文档中所述,如果无法创建和/或执行语句,则函数sqlsrv_将查询语句资源或false

另外,请务必检查sqlsrv_connect和sqlsrv_查询调用的结果

sqlsrv_查询

您可以使用sqlsrv_fetch_对象访问结果


谢谢:我没有看ms docu,这很好。sqlsrv_query$conn,$sqlnextid没有做你认为它做的事情。当您得到一个查询结果时,您需要对其进行迭代以获得每一行,有关更多示例,请参阅sqlsrv_fetch_array。
<?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;
...

?>
$sqlnextid = "SELECT IDENT_CURRENT('dbo.Person') AS LastId"
$result = sqlsrv_query($conn, $sqlnextid);
$row = sqlsrv_fetch_object($result)
echo $row->LastId;