summaryrefslogtreecommitdiff
path: root/ext/pdo_dblib/dblib_driver.c
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2005-07-20 05:27:27 +0000
committerWez Furlong <wez@php.net>2005-07-20 05:27:27 +0000
commitec50ec65b9b781c3ccdbd38e175d24397d45c464 (patch)
tree214de31e3f7f8d964aab6105f120d52cfefa03f6 /ext/pdo_dblib/dblib_driver.c
parent08891a1c1b6a409d48075c73331a731732316724 (diff)
downloadphp-git-ec50ec65b9b781c3ccdbd38e175d24397d45c464.tar.gz
use pdo core test suite.
Now passes all but one test. Volunteers that want to track down the cause for test pdo_018.phpt not passing are welcome.
Diffstat (limited to 'ext/pdo_dblib/dblib_driver.c')
-rw-r--r--ext/pdo_dblib/dblib_driver.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/ext/pdo_dblib/dblib_driver.c b/ext/pdo_dblib/dblib_driver.c
index 0b469d666d..23087775a5 100644
--- a/ext/pdo_dblib/dblib_driver.c
+++ b/ext/pdo_dblib/dblib_driver.c
@@ -44,15 +44,18 @@ static int dblib_fetch_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, zval *info TSRMLS
S = (pdo_dblib_stmt*)stmt->driver_data;
einfo = &S->err;
}
-
+
if (einfo->dberr == SYBESMSG && einfo->lastmsg) {
msg = einfo->lastmsg;
+ } else if (einfo->dberr == SYBESMSG && DBLIB_G(err).lastmsg) {
+ msg = DBLIB_G(err).lastmsg;
+ DBLIB_G(err).lastmsg = NULL;
} else {
msg = einfo->dberrstr;
}
- spprintf(&message, 0, "%s [%d] (severity %d)",
- msg, einfo->dberr, einfo->severity);
+ spprintf(&message, 0, "%s [%d] (severity %d) [%s]",
+ msg, einfo->dberr, einfo->severity, stmt ? stmt->active_query_string : "");
add_next_index_long(info, einfo->dberr);
add_next_index_string(info, message, 0);