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)
/* {{{ _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)
{
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;
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);
} 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) {
/* {{{ proto array ibase_fetch_row(int result [, int blob_flag])
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);
}
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));
+ }
}
/* }}} */