我正在尝试使用" OUTPUT INSERTED.ID"从此查询返回id结果。在我的SQL Server Management Studio中,我获得了新插入行的id。我需要返回那个结果。
我正在尝试这个,我知道连接正在运行,因为它正在插入表中。但是$ value仍然会返回0。
public function Insert($NewSql) {
$value = '0';
$params = array(array($value,SQLSRV_PARAM_OUT));
$stmt = sqlsrv_query($this->conn, $NewSql, $params);
return $value;
}
参数NewSql =" Insert Into Test(Col1)OUTPUT INSERTED.ID VALUES(' SomeValues')&#34 ;;
由于某种原因,$ value仍然返回0。
答案 0 :(得分:0)
想出来。
public function Insert($IncomingSql) {
//Append the Select for Scope_Identity to IncomingSql
$sql = $IncomingSql.'; SELECT SCOPE_IDENTITY();';
$Result = sqlsrv_query($conn,$sql);
sqlsrv_next_result($Result);
sqlsrv_fetch($Result);
return sqlsrv_get_field($Result, 0);
}
然后将其称为
$ID = Insert("Insert Into Table (SomeColumn) Values ('SomeValue)") and $ID will have the last inserted ID.