summaryrefslogtreecommitdiff
path: root/ext/oci8
diff options
context:
space:
mode:
Diffstat (limited to 'ext/oci8')
-rw-r--r--ext/oci8/oci8_interface.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/ext/oci8/oci8_interface.c b/ext/oci8/oci8_interface.c
index 823975f61b..192e912529 100644
--- a/ext/oci8/oci8_interface.c
+++ b/ext/oci8/oci8_interface.c
@@ -1622,19 +1622,28 @@ PHP_FUNCTION(oci_error)
RETURN_FALSE;
}
#endif
- } else {
- connection = (php_oci_connection *) zend_fetch_resource(&arg TSRMLS_CC, -1, NULL, NULL, 1, le_connection);
-
- if (connection) {
- errh = connection->err;
- error = connection->errcode;
- }
+ goto go_out;
+ }
+
+ connection = (php_oci_connection *) zend_fetch_resource(&arg TSRMLS_CC, -1, NULL, NULL, 1, le_connection);
+ if (connection) {
+ errh = connection->err;
+ error = connection->errcode;
+ goto go_out;
+ }
+
+ connection = (php_oci_connection *) zend_fetch_resource(&arg TSRMLS_CC, -1, NULL, NULL, 1, le_pconnection);
+ if (connection) {
+ errh = connection->err;
+ error = connection->errcode;
+ goto go_out;
}
} else {
errh = OCI_G(err);
error = OCI_G(errcode);
}
+go_out:
if (error == OCI_SUCCESS) { /* no error set in the handle */
RETURN_FALSE;
}