diff options
author | Wez Furlong <wez@php.net> | 2005-10-02 22:11:19 +0000 |
---|---|---|
committer | Wez Furlong <wez@php.net> | 2005-10-02 22:11:19 +0000 |
commit | a750f195cd2cb54286b237ec2bfff3cfe5753240 (patch) | |
tree | a6ce9362b0d7a8d9665151c3fc3017d84a70341d /ext/pdo/php_pdo_int.h | |
parent | 991a29cfd6005006c88c7376766f68f910411ea6 (diff) | |
download | php-git-a750f195cd2cb54286b237ec2bfff3cfe5753240.tar.gz |
Fix Bug #34687; error information from query() not passed back
Diffstat (limited to 'ext/pdo/php_pdo_int.h')
-rwxr-xr-x | ext/pdo/php_pdo_int.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/pdo/php_pdo_int.h b/ext/pdo/php_pdo_int.h index b0b6525412..e7c2487b58 100755 --- a/ext/pdo/php_pdo_int.h +++ b/ext/pdo/php_pdo_int.h @@ -57,7 +57,13 @@ extern pdo_driver_t *pdo_find_driver(const char *name, int namelen); extern void pdo_handle_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt TSRMLS_DC); -#define PDO_DBH_CLEAR_ERR() strcpy(dbh->error_code, PDO_ERR_NONE) +#define PDO_DBH_CLEAR_ERR() do { \ + strcpy(dbh->error_code, PDO_ERR_NONE); \ + if (dbh->query_stmt) { \ + dbh->query_stmt = NULL; \ + zend_objects_store_del_ref(&dbh->query_stmt_zval TSRMLS_CC); \ + } \ +} while (0) #define PDO_STMT_CLEAR_ERR() strcpy(stmt->error_code, PDO_ERR_NONE) #define PDO_HANDLE_DBH_ERR() if (strcmp(dbh->error_code, PDO_ERR_NONE)) { pdo_handle_error(dbh, NULL TSRMLS_CC); } #define PDO_HANDLE_STMT_ERR() if (strcmp(stmt->error_code, PDO_ERR_NONE)) { pdo_handle_error(stmt->dbh, stmt TSRMLS_CC); } |