summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2006-01-31 18:38:52 +0000
committerAntony Dovgal <tony2001@php.net>2006-01-31 18:38:52 +0000
commit3a800fe146fd03f1029c2936e2d5a32f816f3bbd (patch)
tree4face84e6376befe5375eea6a189131f3d46fed8 /ext
parenteb91dfc69e28cc9fcaff0f5179269a69349197e6 (diff)
downloadphp-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.c16
-rw-r--r--ext/oci8/oci8_statement.c4
-rw-r--r--ext/oci8/php_oci8_int.h2
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);