0

次のようなクエリがあります。

$sql = "
INSERT INTO table
( a, b, c )
VALUES
( 1, 2, 3 )";

$result_set = sqlsrv_query($conn, $sql);

最後に挿入された行 ID をエコーするにはどうすればよいですか?

みんなありがとう..

4

2 に答える 2

2

あなたの質問のタグが言うように、SqlServerに挿入する場合。

最後に挿入されたSCOPE_IDENTITY()ID が表示されます。

$sql = "INSERT INTO table
        ( a, b, c )
        VALUES
        ( 1, 2, 3 )

        SELECT SCOPE_IDENTITY() as newId ";
于 2012-09-06T11:19:04.570 に答える
0
$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
于 2012-09-06T11:23:14.773 に答える