如何从sqlsrv_execute()获取最后插入的id,并为多个插入准备语句?

时间:2016-03-08 13:50:57

标签: php sql-server prepared-statement

我是 PHP 的新手,但我正试图解决它。假设我有一个插入预处理语句(sqlsrv_prepare()),我将通过替换变量值重新使用多次,然后重新执行它。

foo表使用IDENTITY(1,1)

我的陈述是:

insert into foo (bar, baz) 
values (?, ?); 

Select SCOPE_IDENTITY() as LAST_ID;

我的参数数组由array( &$bar, &$baz)组成。这样,对于一千个插入,我只能替换$bar$baz值并重新运行该语句。

但问题是:由于sqlsrv_execute()返回bool值,我如何检索最后一个“语句插入”ID以将其推送到数组?

我知道我可以使用sqlsrv_query()来做到这一点......我不知道,但我认为它会更慢(因为sqlsrv_query() prepares and executes a query,所以我认为在内部,它会在每次运行时运行“准备函数”,而不是仅通过替换参数值多次执行相同的语句。

我知道如何获取最后插入的ID,使用sqlsrv_query() from herehere插入了哪一行。

我怎样才能为sqlsrv_execute()做到这一点?我做错了吗?

提前谢谢!

0 个答案:

没有答案