diff options
author | Antony Dovgal <tony2001@php.net> | 2006-01-31 18:38:52 +0000 |
---|---|---|
committer | Antony Dovgal <tony2001@php.net> | 2006-01-31 18:38:52 +0000 |
commit | 3a800fe146fd03f1029c2936e2d5a32f816f3bbd (patch) | |
tree | 4face84e6376befe5375eea6a189131f3d46fed8 /ext | |
parent | eb91dfc69e28cc9fcaff0f5179269a69349197e6 (diff) | |
download | php-git-3a800fe146fd03f1029c2936e2d5a32f816f3bbd.tar.gz |
MFH: fix #36235 (ocicolumnname delivers empty results before a succesfull ocifetch)
Diffstat (limited to 'ext')
-rw-r--r-- | ext/oci8/oci8_interface.c | 16 | ||||
-rw-r--r-- | ext/oci8/oci8_statement.c | 4 | ||||
-rw-r--r-- | ext/oci8/php_oci8_int.h | 2 |
3 files changed, 11 insertions, 11 deletions
diff --git a/ext/oci8/oci8_interface.c b/ext/oci8/oci8_interface.c index 7b75a77487..a6a039f30d 100644 --- a/ext/oci8/oci8_interface.c +++ b/ext/oci8/oci8_interface.c @@ -1102,7 +1102,7 @@ PHP_FUNCTION(oci_field_name) { php_oci_out_column *column; - if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) { + if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) { RETURN_STRINGL(column->name, column->name_len, 1); } RETURN_FALSE; @@ -1115,7 +1115,7 @@ PHP_FUNCTION(oci_field_size) { php_oci_out_column *column; - if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) { + if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) { /* Handle data type of LONG */ if (column->data_type == SQLT_LNG){ RETURN_LONG(column->storage_size4); @@ -1132,7 +1132,7 @@ PHP_FUNCTION(oci_field_scale) { php_oci_out_column *column; - if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) { + if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) { RETURN_LONG(column->scale); } RETURN_FALSE; @@ -1145,7 +1145,7 @@ PHP_FUNCTION(oci_field_precision) { php_oci_out_column *column; - if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) { + if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) { RETURN_LONG(column->precision); } RETURN_FALSE; @@ -1158,7 +1158,7 @@ PHP_FUNCTION(oci_field_type) { php_oci_out_column *column; - column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU); + column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); if (!column) { RETURN_FALSE; @@ -1223,7 +1223,7 @@ PHP_FUNCTION(oci_field_type_raw) { php_oci_out_column *column; - column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU); + column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); if (column) { RETURN_LONG(column->data_type); } @@ -1237,7 +1237,7 @@ PHP_FUNCTION(oci_field_is_null) { php_oci_out_column *column; - if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) { + if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) { if (column->indicator == -1) { RETURN_TRUE; } @@ -1734,7 +1734,7 @@ PHP_FUNCTION(oci_result) { php_oci_out_column *column; - column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU); + column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); if(column) { php_oci_column_to_zval(column, return_value, 0 TSRMLS_CC); } diff --git a/ext/oci8/oci8_statement.c b/ext/oci8/oci8_statement.c index d2d3aab744..dcb3130b7e 100644 --- a/ext/oci8/oci8_statement.c +++ b/ext/oci8/oci8_statement.c @@ -1004,7 +1004,7 @@ sb4 php_oci_bind_out_callback( /* {{{ php_oci_statement_get_column_helper() Helper function to get column by name and index */ -php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS) +php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS, int need_data) { zval *z_statement, *column_index; php_oci_statement *statement; @@ -1020,7 +1020,7 @@ php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAME return NULL; } - if (!statement->has_data) { + if (need_data && !statement->has_data) { return NULL; } diff --git a/ext/oci8/php_oci8_int.h b/ext/oci8/php_oci8_int.h index cf41cbd621..0553bc70b9 100644 --- a/ext/oci8/php_oci8_int.h +++ b/ext/oci8/php_oci8_int.h @@ -358,7 +358,7 @@ int php_oci_bind_post_exec(void *data TSRMLS_DC); int php_oci_bind_by_name(php_oci_statement *, char *, int, zval*, long, long TSRMLS_DC); sb4 php_oci_bind_in_callback(dvoid *, OCIBind *, ub4, ub4, dvoid **, ub4 *, ub1 *, dvoid **); sb4 php_oci_bind_out_callback(dvoid *, OCIBind *, ub4, ub4, dvoid **, ub4 **, ub1 *, dvoid **, ub2 **); -php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS); +php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS, int need_data); int php_oci_statement_get_type(php_oci_statement *, ub2 * TSRMLS_DC); int php_oci_statement_get_numrows(php_oci_statement *, ub4 * TSRMLS_DC); |