cvs: php4 /ext/interbase interbase.c php_interbase.h
| From: | Daniela Mariaschi | 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);