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 — Lit le dernier code d'erreur
Retourne un état ODBC sur 6 chiffres, ou une chaîne vide s'il n'y avait plus d'erreurs.
odbc
L'objet de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.
Si odbc
est spécifié, le dernier
état ODBC de cette connexion est retourné. Si
connection_id
est omis, c'est le dernier
état de n'importe quelle connexion qui est retourné.
Cette fonction retourne une valeur significative uniquement si
la dernière requête ODBC a échoué
(i.e. la fonction odbc_exec() a retourné false
).
Version | Description |
---|---|
8.4.0 |
odbc attend désormais une instance de
Odbc\Connection; auparavant, un resource était attendu.
|
8.0.0 |
odbc est désormais nullable.
|
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!