summaryrefslogtreecommitdiff
path: root/ext/odbc/php_odbc.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/odbc/php_odbc.c')
-rw-r--r--ext/odbc/php_odbc.c21
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)