diff options
Diffstat (limited to 'ext/oracle/oracle.c')
-rw-r--r-- | ext/oracle/oracle.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/ext/oracle/oracle.c b/ext/oracle/oracle.c index 982baabdbd..0efdc278f2 100644 --- a/ext/oracle/oracle.c +++ b/ext/oracle/oracle.c @@ -1125,22 +1125,23 @@ PHP_FUNCTION(ora_fetch_into) RETURN_FALSE; } - if (arr->type != IS_ARRAY){ - if (array_init(arr) == FAILURE){ - php_error(E_WARNING, "Can't convert to type Array"); - RETURN_FALSE; - } - } - if (ofetch(&cursor->cda)) { if (cursor->cda.rc != NO_DATA_FOUND) { - php_error(E_WARNING, "Ora_Fetch_Into failed (%s)", - ora_error(&cursor->cda)); + php_error(E_WARNING, "Ora_Fetch_Into failed (%s)",ora_error(&cursor->cda)); } RETURN_FALSE; } cursor->fetched++; + if (arr->type != IS_ARRAY){ + pval_destructor(arr); + if (array_init(arr) == FAILURE){ + php_error(E_WARNING, "Can't convert to type Array"); + RETURN_FALSE; + } + } + zend_hash_internal_pointer_reset(arr->value.ht); + for (i = 0; i < cursor->ncols; i++) { if (cursor->columns[i].col_retcode == 1405) { |