gpt4 book ai didi

php - 如何使用 PHP、SQL SERVER 2005 从 INSERT 语句返回插入的行?

转载 作者:行者123 更新时间:2023-12-02 01:19:06 25 4
gpt4 key购买 nike

在 INSERT 语句之后插入整个行的最简单/最有效方法是什么?

我很确定我可以按如下方式做到这一点:

$aQuery = "INSERT into myTable (a, b, c) VALUES (1, 'Hello', 'Goodbye')";
//the IDENTITY coloumn in myTable is named id
$result = sqlsrv_query($myConn, $aQuery );
if ($result) {
$res = sqlsrv_query('SELECT LAST_INSERT_ID()');
$row = sqlsrv_fetch_array($res);
$lastInsertId = $row[0];
$subQuery = "SELECT * FROM myTable where id = {$lastInsertId}";
$subResult = sqlsrv_query($myConn, $subQuery);
if ($subResult) {
while($subrow = sqlsrv_fetch_array($subResult)) {
echo($subrow ['id'] . ', '.
$subrow ['a'] . ', '.
$subrow ['b']); //etc...
}
}
}

但是,我担心 另一个 插入发生在我的 SELECT LAST_INSERT_ID() 之前的可能性,从而扰乱了我的启动逻辑。我如何确定最后插入的 id 确实是我之前调用的 INSERT,而不是其他地方发生的事情?

是否有更合适的方法来执行此操作,也许是完整的 SQL 解决方案(这样查询会自动返回行而不是使用 PHP)?

更新:myTable 确实 有一个显式定义(和自动递增)的标识列,名为 id

最佳答案

这会起作用:

"INSERT into myTable (a, b, c) OUTPUT Inserted.a, Inserted.b, Inserted.c VALUES (1, 'Hello', 'Goodbye')

关于php - 如何使用 PHP、SQL SERVER 2005 从 INSERT 语句返回插入的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com