mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
MFH: fix #37487 (oci_fetch_array() array-type should always default to OCI_BOTH)
This commit is contained in:
parent
557b7fbec5
commit
749f4ac2ab
2
NEWS
2
NEWS
@ -38,6 +38,8 @@ PHP NEWS
|
||||
- Added pg_field_table() function. (Edin)
|
||||
- Added implementation of curl_multi_info_read(). (Brian)
|
||||
- Added RFC2397 (data: stream) support. (Marcus)
|
||||
- Fixed bug #37487 (oci_fetch_array() array-type should always default to
|
||||
OCI_BOTH). (Tony)
|
||||
- Fixed bug #37395 (recursive mkdir() fails to create nonexistent directories
|
||||
in root dir). (Tony)
|
||||
- Fixed bug #37457 (Crash when an exception is thrown in accept() method of
|
||||
|
@ -1643,6 +1643,16 @@ void php_oci_fetch_row (INTERNAL_FUNCTION_PARAMETERS, int mode, int expected_arg
|
||||
fetch_mode = mode;
|
||||
}
|
||||
|
||||
if (!(fetch_mode & PHP_OCI_NUM) && !(fetch_mode & PHP_OCI_ASSOC)) {
|
||||
/* none of the modes present, use the default one */
|
||||
if (mode & PHP_OCI_ASSOC) {
|
||||
fetch_mode |= PHP_OCI_ASSOC;
|
||||
}
|
||||
if (mode & PHP_OCI_NUM) {
|
||||
fetch_mode |= PHP_OCI_NUM;
|
||||
}
|
||||
}
|
||||
|
||||
PHP_OCI_ZVAL_TO_STATEMENT(z_statement, statement);
|
||||
|
||||
if (php_oci_statement_fetch(statement, nrows TSRMLS_CC)) {
|
||||
|
@ -209,58 +209,100 @@ array(4) {
|
||||
["VALUE"]=>
|
||||
string(1) "1"
|
||||
}
|
||||
array(2) {
|
||||
array(4) {
|
||||
[0]=>
|
||||
string(1) "1"
|
||||
["ID"]=>
|
||||
string(1) "1"
|
||||
[1]=>
|
||||
string(1) "1"
|
||||
["VALUE"]=>
|
||||
string(1) "1"
|
||||
}
|
||||
array(2) {
|
||||
array(4) {
|
||||
[0]=>
|
||||
string(1) "1"
|
||||
["ID"]=>
|
||||
string(1) "1"
|
||||
[1]=>
|
||||
string(1) "1"
|
||||
["VALUE"]=>
|
||||
string(1) "1"
|
||||
}
|
||||
array(2) {
|
||||
array(4) {
|
||||
[0]=>
|
||||
string(1) "1"
|
||||
["ID"]=>
|
||||
string(1) "1"
|
||||
[1]=>
|
||||
string(1) "1"
|
||||
["VALUE"]=>
|
||||
string(1) "1"
|
||||
}
|
||||
array(5) {
|
||||
array(10) {
|
||||
[0]=>
|
||||
string(1) "1"
|
||||
["ID"]=>
|
||||
string(1) "1"
|
||||
[1]=>
|
||||
string(1) "1"
|
||||
["VALUE"]=>
|
||||
string(1) "1"
|
||||
[2]=>
|
||||
NULL
|
||||
["BLOB"]=>
|
||||
NULL
|
||||
[3]=>
|
||||
NULL
|
||||
["CLOB"]=>
|
||||
NULL
|
||||
[4]=>
|
||||
NULL
|
||||
["STRING"]=>
|
||||
NULL
|
||||
}
|
||||
array(5) {
|
||||
array(10) {
|
||||
[0]=>
|
||||
string(1) "1"
|
||||
["ID"]=>
|
||||
string(1) "1"
|
||||
[1]=>
|
||||
string(1) "1"
|
||||
["VALUE"]=>
|
||||
string(1) "1"
|
||||
[2]=>
|
||||
NULL
|
||||
["BLOB"]=>
|
||||
NULL
|
||||
[3]=>
|
||||
NULL
|
||||
["CLOB"]=>
|
||||
NULL
|
||||
[4]=>
|
||||
NULL
|
||||
["STRING"]=>
|
||||
NULL
|
||||
}
|
||||
array(5) {
|
||||
array(10) {
|
||||
[0]=>
|
||||
string(1) "1"
|
||||
["ID"]=>
|
||||
string(1) "1"
|
||||
[1]=>
|
||||
string(1) "1"
|
||||
["VALUE"]=>
|
||||
string(1) "1"
|
||||
[2]=>
|
||||
NULL
|
||||
["BLOB"]=>
|
||||
NULL
|
||||
[3]=>
|
||||
NULL
|
||||
["CLOB"]=>
|
||||
NULL
|
||||
[4]=>
|
||||
NULL
|
||||
["STRING"]=>
|
||||
NULL
|
||||
}
|
||||
Done
|
||||
|
@ -34,7 +34,7 @@ if (!oci_execute($s)) {
|
||||
die("oci_execute(select) failed!\n");
|
||||
}
|
||||
|
||||
$row = oci_fetch_array($s, OCI_RETURN_NULLS + OCI_RETURN_LOBS);
|
||||
$row = oci_fetch_array($s, OCI_NUM + OCI_RETURN_NULLS + OCI_RETURN_LOBS);
|
||||
var_dump($row);
|
||||
|
||||
foreach ($row as $num => $field) {
|
||||
|
@ -34,7 +34,7 @@ if (!oci_execute($s)) {
|
||||
die("oci_execute(select) failed!\n");
|
||||
}
|
||||
|
||||
$row = oci_fetch_array($s, OCI_RETURN_NULLS + OCI_RETURN_LOBS);
|
||||
$row = oci_fetch_array($s, OCI_NUM + OCI_RETURN_NULLS + OCI_RETURN_LOBS);
|
||||
var_dump($row);
|
||||
|
||||
var_dump(oci_field_is_null($s, -1));
|
||||
|
@ -69,8 +69,10 @@ echo "Done\n";
|
||||
int(32)
|
||||
bool(true)
|
||||
string(32) "some string here. string, I said"
|
||||
array(1) {
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(32) "some string here. string, I said"
|
||||
["BLOB"]=>
|
||||
string(32) "some string here. string, I said"
|
||||
}
|
||||
Done
|
||||
|
@ -16,8 +16,10 @@ var_dump(oci_fetch_array($stmt, OCI_RETURN_NULLS));
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
array(1) {
|
||||
array(2) {
|
||||
[0]=>
|
||||
NULL
|
||||
["NULL"]=>
|
||||
NULL
|
||||
}
|
||||
Done
|
||||
|
Loading…
Reference in New Issue
Block a user