]> granicus.if.org Git - php/commitdiff
make oci work again.
authorThies C. Arntzen <thies@php.net>
Sat, 17 Feb 2001 15:54:40 +0000 (15:54 +0000)
committerThies C. Arntzen <thies@php.net>
Sat, 17 Feb 2001 15:54:40 +0000 (15:54 +0000)
ext/oci8/oci8.c

index f504827e0cb2b16b717d85103685ca428fef4735..2ee8ef26363efbc1302425bec7fa91f65ec9b77b 100644 (file)
@@ -735,22 +735,17 @@ _oci_session_list_dtor(zend_rsrc_list_entry *rsrc)
 static ub4
 oci_handle_error(oci_connection *connection, ub4 errcode)
 {
-   switch (errcode) {
-       case 0:
-           return 0;
-           break;
-       case 22:   /* ORA-00022 Invalid session id */
-       case 1012: /* ORA-01012: */
-       case 3113: /* ORA-03113: end-of-file on communication channel */
-           connection->open = 0;
-           connection->session->open = 0;
-           connection->session->server->open = 0;
-           return 0;
-           break;
-       default:
-           return 0;
-           break;
-   }
+       switch (errcode) {
+       case 22:   /* ORA-00022 Invalid session id */
+               case 1012: /* ORA-01012: */
+               case 3113: /* ORA-03113: end-of-file on communication channel */
+               connection->open = 0;
+               connection->session->open = 0;
+               connection->session->server->open = 0;
+                       return 1; /* fatal error */
+       }
+
+       return 0; /* no fatal error */
 }
 
 /* {{{ oci_error() */
@@ -1224,8 +1219,12 @@ oci_execute(oci_statement *statement, char *func,ub4 mode)
                if (statement->binds) {
                        zend_hash_apply(statement->binds, (int (*)(void *)) _oci_bind_post_exec);
                }
+
                oci_handle_error(statement->conn, statement->error);
-               return 0;
+
+               if (statement->error) {
+                       return 0;
+               }
        }
 
        if (stmttype == OCI_STMT_SELECT && (statement->executed == 0)) {