oci_execute() no longer supports OCI_DESCRIBE_ONLY
| Bug #36403 | oci_execute() no longer supports OCI_DESCRIBE_ONLY | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2006-02-15 19:01 UTC | Modified: | 2006-02-15 21:49 UTC |
|
||||||||||
| From: | johnw at sussex dot ac dot uk | Assigned: | ||||||||||||
| Status: | Closed | Package: | OCI8 related | |||||||||||
| PHP Version: | 5.1.2 | OS: | solaris 9 | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2006-02-15 19:01 UTC] johnw at sussex dot ac dot uk
Description:
------------
Supplying the constant OCI_DESCRIBE_ONLY as the second
argument (mode) to oci_execute() results in a warning,
and oci_execute() returning false.
Reproduce code:
---------------
The bug is caused by these lines of code in
php-5.1.2/ext/oci8/oci_statement.c
at line 1351 in the definition of
php_oci_statement_execute():
switch (mode) {
case OCI_COMMIT_ON_SUCCESS:
case OCI_DEFAULT:
/* only these two are allowed */
break;
default:
php_error_docref(NULL TSRMLS_CC, E_WARNING,
"Invalid execute mode given: %d", mode);
return 1;
break;
}
Expected result:
----------------
I would expect oci_execute() to pass the mode
OCI_DESCRIBE_ONLY on to the underlying OCI8 call.
I think it is very bad that this non- backward-
compatible change has been made without being documented
or announced anywhere. I am responsible for an
application that is used by several thousands of users
daily that relies on OCI_DESCRIBE_ONLY working.
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2006-02-15 21:49 UTC] tony2001@php.net