"在 Microsoft Drivers for PHP for SQL Server 中,SQLSRV 驱动程序的 API 名称为 sqlsrv。 所有 sqlsrv 函数都以 sqlsrv_ 开头,后跟谓词或名词。 后跟谓词的函数可执行特定操作,后跟名词的函数可返回特定形式的元数据。”
曾经,我一直认为sqlsrv无法返回新增ID,而采用PDO连接的方式。之前在一个项目中,不得已必须通过sqlsrv获取到新增ID,因此翻阅了大量资料,最后发现中文资料寥寥无几,有通过max(id)来获取的,也有通过##IDENTITY来获取的,但这些并不是好办法。天不负有心人,终于在翻阅资料的过程中发现SCOPE_IDENTITY这个非常接近我想法的东西。
经过一些测试,SCOPE_IDENTITY更加稳定和靠谱,给出一个PHP示例:
$sql="insert into table (xxx) values (xxx);SELECT SCOPE_IDENTITY();"; $query=sqlsrv_query($db,$sql); sqlsrv_next_result($query); $result=sqlsrv_fetch_array($query); echo$result[0];