我有一个这样的查询:
$sql = "
INSERT INTO table
( a, b, c )
VALUES
( 1, 2, 3 )";
$result_set = sqlsrv_query($conn, $sql);
我现在如何回显最后插入的行 ID?
多谢你们..
我有一个这样的查询:
$sql = "
INSERT INTO table
( a, b, c )
VALUES
( 1, 2, 3 )";
$result_set = sqlsrv_query($conn, $sql);
我现在如何回显最后插入的行 ID?
多谢你们..
如果您插入到 SqlServer,就像您问题中的标签所说的那样。
SCOPE_IDENTITY()
为您提供最后插入的 ID 。
$sql = "INSERT INTO table
( a, b, c )
VALUES
( 1, 2, 3 )
SELECT SCOPE_IDENTITY() as newId ";
$dbres = sqlsrv_query('SELECT LAST_INSERT_ID()');
$dbrow = sqlsrv_fetch_array($dbres);
$lastInsertId = $dbrow[0];
您可以这样做,但在您获得插入 ID 并将所有内容弄乱之前,可能会发生另一个插入,所以最好这样:
INSERT into table(a, b, c) OUTPUT Inserted.a, Inserted.b, Inserted.c VALUES (1, 2, 3)
或者这样:
INSERT into table(a, b, c) VALUES (1, 2, 3) SELECT SCOPE_IDENTITY() as lastId