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)
odbc_error — Get the last error code
$connection_id
] )Returns a six-digit ODBC state, or an empty string if there has been no errors.
If connection_id
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
).
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?
I have use this function, its very simple and cute.
with IBM DB2
<?php
// you must set the connection first
if (odbc_error())
{
echo odbc_errormsg($conn);
}
// if you want to show the perfect error message
// then format it using string functions.
?>
Have a good day!
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!
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(...);