php使用Scope\u标识返回id

php使用Scope\u标识返回id,php,sql,sql-server,primary-key,Php,Sql,Sql Server,Primary Key,在搜索其他文章时,我得出的结论是,我需要使用Scope_Identity()返回在MS SQL表中插入行时生成的主键的值。然而,我不太清楚的是返回该值所需的php。作为一个相当新的例子,到目前为止,我都是从我的前任那里借用代码来运行sql查询的,但在这种情况下,我总是使用while循环从数组返回结果。请告知正确的代码 $query = "INSERT INTO mytable (Title,Author) VALUES('".sql_safe($Title)."', '"sq

在搜索其他文章时,我得出的结论是,我需要使用Scope_Identity()返回在MS SQL表中插入行时生成的主键的值。然而,我不太清楚的是返回该值所需的php。作为一个相当新的例子,到目前为止,我都是从我的前任那里借用代码来运行sql查询的,但在这种情况下,我总是使用while循环从数组返回结果。请告知正确的代码

$query = "INSERT INTO mytable (Title,Author)
          VALUES('".sql_safe($Title)."', '"sql_safe($Author)."'); SELECT Scope_Identity() as myid;";

$result = odbc_exec($con1, $query);
到现在为止,我只需要使用

while($row = odbc_fetch_array($result)){ }

但是用什么正确的方式来表示myid呢?

我为此挣扎了一段时间,最后我的解决方案是回到


为什么要使用ODBC?我想说的是,我对sql连接方法没有太多的了解-有人告诉我,我们的服务器与SQLSRV不兼容,而SQLSRV是首选方法,直到我们得到一台新服务器,这才是建议的连接方法。这也是我的前任使用的,我继承了代码。不幸的是,我的团队中没有太多的php/sql经验,我不得不将就一下。任何关于为什么这不是一个好主意和替代方案的建议都是受欢迎的。
$query ="        INSERT INTO powerview.DL_documentlist (Title,Liveversion,Author,Location,Locked,LockedbyID)
                VALUES('".sql_safe($Title)."',1.0,'".sql_safe($Author)."','".sql_safe($Location)."','1',".$lockedbyID."); 
                SELECT SCOPE_IDENTITY() as id;
                RETURN;
             ";

    $result = mssql_query($query);      
    $result = mssql_fetch_object($result);

    $DocID = $result->id;