diff options
author | Nick Gorham <lurcher@php.net> | 1999-12-09 09:59:17 +0000 |
---|---|---|
committer | Nick Gorham <lurcher@php.net> | 1999-12-09 09:59:17 +0000 |
commit | 25096ac9e93e7caac46ff4b22c4313b8b6b4c5ef (patch) | |
tree | d2596f69ba582781f56b3c1b1fae921482b8edbc /ext/odbc/php_odbc.c | |
parent | ec7088e1df45a606aa5fe267af67a7b8789a095c (diff) | |
download | php-git-25096ac9e93e7caac46ff4b22c4313b8b6b4c5ef.tar.gz |
Report all ODBC error's not just the top of the stack
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) |