sixd Thu Aug 28 06:19:45 2008 UTC
Added files: (Branch: PHP_5_3)
/php-src/ext/oci8/tests bug45458.phpt
Modified files:
/php-src/ext/oci8 oci8_interface.c
Log:
MFH: Bug #45458 (OCI8: Numeric keys for associative arrays are not handled
properly)
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/oci8_interface.c?r1=1.8.2.7.2.13.2.7&r2=1.8.2.7.2.13.2.8&diff_format=u
Index: php-src/ext/oci8/oci8_interface.c
diff -u php-src/ext/oci8/oci8_interface.c:1.8.2.7.2.13.2.7
php-src/ext/oci8/oci8_interface.c:1.8.2.7.2.13.2.8
--- php-src/ext/oci8/oci8_interface.c:1.8.2.7.2.13.2.7 Thu Jun 5 23:43:10 2008
+++ php-src/ext/oci8/oci8_interface.c Thu Aug 28 06:19:45 2008
@@ -25,7 +25,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: oci8_interface.c,v 1.8.2.7.2.13.2.7 2008/06/05 23:43:10 sixd Exp $ */
+/* $Id: oci8_interface.c,v 1.8.2.7.2.13.2.8 2008/08/28 06:19:45 sixd Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1399,7 +1399,7 @@
if (flags & PHP_OCI_NUM) {
zend_hash_next_index_insert(Z_ARRVAL_P(row), &element, sizeof(zval*), NULL);
} else { /* default to ASSOC */
- zend_hash_update(Z_ARRVAL_P(row),
columns[ i ]->name, columns[ i ]->name_len+1, &element, sizeof(zval*), NULL);
+ zend_symtable_update(Z_ARRVAL_P(row),
columns[ i ]->name, columns[ i ]->name_len+1, &element, sizeof(zval*), NULL);
}
}
@@ -1431,7 +1431,7 @@
MAKE_STD_ZVAL(tmp);
array_init(tmp);
- zend_hash_update(Z_ARRVAL_P(array), columns[ i
]->name, columns[ i ]->name_len+1, (void *) &tmp, sizeof(zval*), (void **)
&(outarrs[ i ]));
+ zend_symtable_update(Z_ARRVAL_P(array),
columns[ i ]->name, columns[ i ]->name_len+1, (void *) &tmp, sizeof(zval*),
(void **) &(outarrs[ i ]));
}
}
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/bug45458.phpt?view=markup&rev=1.1
Index: php-src/ext/oci8/tests/bug45458.phpt
+++ php-src/ext/oci8/tests/bug45458.phpt
--TEST--
Bug #45458 (OCI8: Numeric keys for associative arrays are not handled properly)
--SKIPIF--
<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
--FILE--
<?php
require(dirname(__FILE__).'/connect.inc');
// Run Test
echo "Test 1\n";
$stmt = 'select dummy "a", dummy "20" from dual';
$s = oci_parse($c, $stmt);
oci_execute($s);
$r = oci_fetch_all($s, $data, 0, -1, OCI_FETCHSTATEMENT_BY_ROW);
var_dump($data);
var_dump($data[0]);
var_dump($data[0]["a"]);
var_dump($data[0]["20"]);
oci_free_statement($s);
echo "Test 2\n";
$s = oci_parse($c, $stmt);
oci_execute($s);
$r = oci_fetch_all($s, $data, 0, -1, OCI_ASSOC);
var_dump($data);
var_dump($data["a"]);
var_dump($data["20"]);
var_dump($data["a"][0]);
var_dump($data["20"][0]);
oci_free_statement($s);
oci_close($c);
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
Test 1
array(1) {
[0]=>
array(2) {
[u"a"]=>
unicode(1) "X"
[20]=>
unicode(1) "X"
}
}
array(2) {
[u"a"]=>
unicode(1) "X"
[20]=>
unicode(1) "X"
}
unicode(1) "X"
unicode(1) "X"
Test 2
array(2) {
[u"a"]=>
array(1) {
[0]=>
unicode(1) "X"
}
[20]=>
array(1) {
[0]=>
unicode(1) "X"
}
}
array(1) {
[0]=>
unicode(1) "X"
}
array(1) {
[0]=>
unicode(1) "X"
}
unicode(1) "X"
unicode(1) "X"
===DONE===
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php