From:             [EMAIL PROTECTED]
Operating system: linux
PHP version:      4.2.1
PHP Bug Type:     Output Control
Bug description:  if return value of oci function is OCI_SUCCESS_WITH_INFO, php 
assumes it error.

If return value of OCI function is OCI_SUCCESS_WITH_INFO, php assumes it
error. and it don't generate message about INFO. so user cannot know what
problem is.

Using php and oracle, I found OCI_SUCESS_WITH_INFO, but cannot known what
problem is. for a long time I try to know it, finally I know. It is
"password will be expired" ĪŅ.ĪŅ;

When return value of OCI function is OCI_SUCESS_WITH_INFO,
we get specific message using OCIErrGet() function like OCI_ERROR.

so, I hope to fix that OCI_SUCCESS_WITH_INFO of following function equals
OCI_ERROR of it.

(ext/oci8/oci8.c)

static ub4
oci_error(OCIError *err_p, char *what, sword status)
{
    text errbuf[512];
    sb4 errcode = 0;

    switch (status) {
        case OCI_SUCCESS:
                break;
        case OCI_SUCCESS_WITH_INFO:
                php_error(E_WARNING, "%s: OCI_SUCCESS_WITH_INFO", what);
                break;
        case OCI_NEED_DATA:
                php_error(E_WARNING, "%s: OCI_NEED_DATA", what);
                break;
        case OCI_NO_DATA:
                php_error(E_WARNING, "%s: OCI_NO_DATA", what);
                break;
        case OCI_ERROR: {
                        TSRMLS_FETCH();
                        CALL_OCI(OCIErrorGet(
                                        err_p,
                                        (ub4)1,
                                        NULL,
                                        &errcode,
                                        errbuf,
                                        (ub4)sizeof(errbuf),
                                        (ub4)OCI_HTYPE_ERROR));

                        php_error(E_WARNING, "%s: %s", what, errbuf);
                        break;
                }
        case OCI_INVALID_HANDLE:
                php_error(E_WARNING, "%s: OCI_INVALID_HANDLE", what);
                break;
        case OCI_STILL_EXECUTING:
                php_error(E_WARNING, "%s: OCI_STILL_EXECUTING", what);
                break;
        case OCI_CONTINUE:
                php_error(E_WARNING, "%s: OCI_CONTINUE", what);
                break;
        default:
                break;
    }
    return errcode;
}
-- 
Edit bug report at http://bugs.php.net/?id=17448&edit=1
-- 
Fixed in CVS:        http://bugs.php.net/fix.php?id=17448&r=fixedcvs
Fixed in release:    http://bugs.php.net/fix.php?id=17448&r=alreadyfixed
Need backtrace:      http://bugs.php.net/fix.php?id=17448&r=needtrace
Try newer version:   http://bugs.php.net/fix.php?id=17448&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=17448&r=support
Expected behavior:   http://bugs.php.net/fix.php?id=17448&r=notwrong
Not enough info:     http://bugs.php.net/fix.php?id=17448&r=notenoughinfo
Submitted twice:     http://bugs.php.net/fix.php?id=17448&r=submittedtwice
register_globals:    http://bugs.php.net/fix.php?id=17448&r=globals

Reply via email to