diff options
Diffstat (limited to 'ext/odbc/php_odbc.c')
-rw-r--r-- | ext/odbc/php_odbc.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index 9a2d412809..5ab7bf915c 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -461,17 +461,20 @@ void ODBC_SQL_ERROR(HENV henv, HDBC conn, HSTMT stmt, char *func) SDWORD error; /* Not used */ char errormsg[255]; SWORD errormsgsize; /* Not used */ + SQLRETURN ret; ODBCLS_FETCH(); - - SQLError(henv, conn, stmt, state, - &error, errormsg, sizeof(errormsg)-1, &errormsgsize); - if (func) { - php_error(E_WARNING, "SQL error: %s, SQL state %s in %s", + + do { + SQLError(henv, conn, stmt, state, + &error, errormsg, sizeof(errormsg)-1, &errormsgsize); + if (func) { + php_error(E_WARNING, "SQL error: %s, SQL state %s in %s", errormsg, state, func); - } else { - php_error(E_WARNING, "SQL error: %s, SQL state %s", - errormsg, state); - } + } else { + php_error(E_WARNING, "SQL error: %s, SQL state %s", + errormsg, state); + } + } while ( SQL_SUCCEEDED( ret )); } void php3_odbc_fetch_attribs(INTERNAL_FUNCTION_PARAMETERS, int mode) |