On persistent connections, a failed T-SQL will allow odbc_error and odbc_errormsg to return the error, but a subsequent successful T-SQL will not clear the error. Is it a bug?
(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)
odbc_error — Get the last error code
Returns a six-digit ODBC state, or an empty string if there has been no errors.
If odbc
is specified, the last state
of that connection is returned, else the last state of any connection
is returned.
This function returns meaningful value only if last odbc query failed
(i.e. odbc_exec() returned false
).
Version | Description |
---|---|
8.0.0 |
odbc is nullable now.
|
On persistent connections, a failed T-SQL will allow odbc_error and odbc_errormsg to return the error, but a subsequent successful T-SQL will not clear the error. Is it a bug?
If you use an argument, make sure its the CONNECTION_ID and not the RESULT_ID.
Testing the result can return a null string or sometimes a garbage string.
# -- Example code --
$rs = odbc_exec($dbc, $sql);
#this is wrong but won't error out until
#you demo the page for a client!
if (odbc_error($rs)) die(...);
#these work
if (odbc_error()) die(...);
if (odbc_error($dbc)) die(...);
Using IBM DB2 V7.1 and MS SQL Server 7 ODBC database connections.
Print the result of odbc_error() or odbc_errormsg() after each call to an odbc_ function that gives no error and, sooner or later, you'll get garbage instead of a blank string!