php 使用 Scope_identity 返回 id
Posted
技术标签:
【中文标题】php 使用 Scope_identity 返回 id【英文标题】:php to return id using Scope_identity 【发布时间】:2015-09-05 14:43:06 【问题描述】:搜索其他文章我得出的结论是,我需要使用 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 不兼容,直到我们得到一个新服务器,这是建议的连接方式。它也是我的前任使用的,我继承了代码。不幸的是,我的团队没有太多的 php/sql 经验,我不得不凑合着做。欢迎任何关于为什么这不是一个好主意和替代方案的建议。 【参考方案1】:我为此苦苦挣扎了一段时间,最后我的解决方案涉及回到mssql_query driver
$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;
【讨论】:
以上是关于php 使用 Scope_identity 返回 id的主要内容,如果未能解决你的问题,请参考以下文章
为啥 SCOPE_IDENTITY() 不返回我插入的 ID?
@@ROWCOUNT,@@IDENTITY, SCOPE_IDENTITY()
如果使用多个插入语句,有啥方法可以使用 SCOPE_IDENTITY 吗?