summaryrefslogtreecommitdiff
path: root/drivers/adodb-mssqlnative.inc.php
diff options
context:
space:
mode:
authorDamien Regad <dregad@mantisbt.org>2021-03-14 17:46:48 +0100
committerDamien Regad <dregad@mantisbt.org>2021-04-11 10:25:50 +0200
commit5658dfc9289060f329fd7c3f0590053871a4bd14 (patch)
treef11d0f81861c29b2c4898b0129d1821ec418322b /drivers/adodb-mssqlnative.inc.php
parent823fda53fc2d1171347ff2cb8308612d4e1abf1a (diff)
downloadadodb-5658dfc9289060f329fd7c3f0590053871a4bd14.tar.gz
adodb-5658dfc9289060f329fd7c3f0590053871a4bd14.tar.bz2
adodb-5658dfc9289060f329fd7c3f0590053871a4bd14.zip
Add loop to get the last result
Server may return more than one row if triggers are involved (see #41).
Diffstat (limited to 'drivers/adodb-mssqlnative.inc.php')
-rw-r--r--drivers/adodb-mssqlnative.inc.php7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/adodb-mssqlnative.inc.php b/drivers/adodb-mssqlnative.inc.php
index 7674a154..3b9d905a 100644
--- a/drivers/adodb-mssqlnative.inc.php
+++ b/drivers/adodb-mssqlnative.inc.php
@@ -648,8 +648,11 @@ class ADODB_mssqlnative extends ADOConnection {
if (!$rez) {
$rez = false;
} elseif ($retrieveLastInsertID) {
- // Get the inserted id from the 2nd result
- if (sqlsrv_next_result($rez) && sqlsrv_fetch($rez)) {
+ // Get the inserted id from the last result
+ // Note: loop is required as server may return more than one row,
+ // e.g. if triggers are involved (see #41)
+ while (sqlsrv_next_result($rez)) {
+ sqlsrv_fetch($rez);
$this->lastInsID = sqlsrv_get_field($rez, 0, SQLSRV_PHPTYPE_INT);
}
}