diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | ext/odbc/php_odbc.c | 21 |
2 files changed, 13 insertions, 9 deletions
@@ -2,6 +2,7 @@ PHP 4.0 NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ?? ????, Version 4.0 Beta 4 +- Report all ODBC error's not just the one on the top of the stack (lurcher) - OCI8 now returns NULL values in LONG columns correct. (Thies) - Added support for a C-like assert() function. (Thies) - Added CyberCash support. (Evan) 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) |