cvs: php4 /ext/interbase interbase.c php_interbase.h

From: Date: Fri, 15 Mar 2002 15:26:02 +0000
Subject: cvs: php4 /ext/interbase interbase.c php_interbase.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-10160@lists.php.net to get a copy of this message
daniela Fri Mar 15 10:26:02 2002 EDT Modified files: /php4/ext/interbase interbase.c php_interbase.h Log: added new ibase_fetch_assoc() php function Index: php4/ext/interbase/interbase.c diff -u php4/ext/interbase/interbase.c:1.77 php4/ext/interbase/interbase.c:1.78 --- php4/ext/interbase/interbase.c:1.77 Wed Mar 6 14:54:47 2002 +++ php4/ext/interbase/interbase.c Fri Mar 15 10:25:51 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: interbase.c,v 1.77 2002/03/06 19:54:47 derick Exp $ */ +/* $Id: interbase.c,v 1.78 2002/03/15 15:25:51 daniela Exp $ */ /* TODO: Arrays, roles? @@ -79,6 +79,7 @@ PHP_FE(ibase_close, NULL) PHP_FE(ibase_query, NULL) PHP_FE(ibase_fetch_row, NULL) + PHP_FE(ibase_fetch_assoc, NULL) PHP_FE(ibase_fetch_object, NULL) PHP_FE(ibase_free_result, NULL) PHP_FE(ibase_prepare, NULL) @@ -594,7 +595,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "Interbase Support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.77 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.78 $"); #ifdef COMPILE_DL_INTERBASE php_info_print_table_row(2, "Dynamic Module", "yes"); #endif @@ -1919,8 +1920,8 @@ /* {{{ _php_ibase_fetch_hash() */ -#define FETCH_ARRAY 1 -#define FETCH_OBJECT 2 +#define FETCH_ROW 2 +#define FETCH_ARRAY 4 static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type) { @@ -1966,15 +1967,9 @@ RETURN_FALSE; } - if (fetch_type == FETCH_ARRAY) { if (array_init(return_value)==FAILURE) { RETURN_FALSE; } - } else if (fetch_type == FETCH_OBJECT) { - if (object_init(return_value)==FAILURE) { - RETURN_FALSE; - } - } arr_cnt = 0; var = ib_result->out_sqlda->sqlvar; @@ -2101,7 +2096,7 @@ default: break; } /*switch*/ - if (fetch_type & FETCH_ARRAY) { + if (fetch_type & FETCH_ROW) { switch (Z_TYPE_P(tmp)) { case IS_STRING: add_index_stringl(return_value, i, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp), 0); @@ -2116,22 +2111,22 @@ } else { switch (Z_TYPE_P(tmp)) { case IS_STRING: - add_property_stringl(return_value, var->aliasname, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp), 0); + add_assoc_stringl(return_value, var->aliasname, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp), 0); break; case IS_LONG: - add_property_long(return_value, var->aliasname, Z_LVAL_P(tmp)); + add_assoc_long(return_value, var->aliasname, Z_LVAL_P(tmp)); break; case IS_DOUBLE: - add_property_double(return_value, var->aliasname, Z_DVAL_P(tmp)); + add_assoc_double(return_value, var->aliasname, Z_DVAL_P(tmp)); break; } } efree(tmp); } else { - if (fetch_type & FETCH_ARRAY) { + if (fetch_type & FETCH_ROW) { add_index_null(return_value, i); } else { - add_property_null(return_value, var->aliasname); + add_assoc_null(return_value, var->aliasname); } } if ((var->sqltype & ~1) == SQL_ARRAY) { @@ -2145,6 +2140,14 @@ Fetch a row from the results of a query */ PHP_FUNCTION(ibase_fetch_row) { + _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FETCH_ROW); +} +/* }}} */ + +/* {{{ proto array ibase_fetch_assoc(int result [, int blob_flag]) + Fetch a row from the results of a query */ +PHP_FUNCTION(ibase_fetch_assoc) +{ _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FETCH_ARRAY); } /* }}} */ @@ -2153,7 +2156,10 @@ Fetch a object from the results of a query */ PHP_FUNCTION(ibase_fetch_object) { - _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FETCH_OBJECT); + _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FETCH_ARRAY); + if (Z_TYPE_P(return_value) == IS_ARRAY) { + object_and_properties_init(return_value, &zend_standard_class_def, Z_ARRVAL_P(return_value)); + } } /* }}} */ Index: php4/ext/interbase/php_interbase.h diff -u php4/ext/interbase/php_interbase.h:1.25 php4/ext/interbase/php_interbase.h:1.26 --- php4/ext/interbase/php_interbase.h:1.25 Sun Jan 27 10:31:15 2002 +++ php4/ext/interbase/php_interbase.h Fri Mar 15 10:26:01 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_interbase.h,v 1.25 2002/01/27 15:31:15 aeschbacher Exp $ */ +/* $Id: php_interbase.h,v 1.26 2002/03/15 15:26:01 daniela Exp $ */ #ifndef PHP_INTERBASE_H #define PHP_INTERBASE_H @@ -45,6 +45,7 @@ PHP_FUNCTION(ibase_close); PHP_FUNCTION(ibase_query); PHP_FUNCTION(ibase_fetch_row); +PHP_FUNCTION(ibase_fetch_assoc); PHP_FUNCTION(ibase_fetch_object); PHP_FUNCTION(ibase_free_result); PHP_FUNCTION(ibase_prepare);

« previous php.cvs (#10160) next »