@@ -2122,6 +2122,16 @@ static int _php_db2_bind_column_helper(stmt_handle *stmt_res)
2122
2122
}
2123
2123
break ;
2124
2124
2125
+ case SQL_BOOLEAN :
2126
+ case SQL_BIT :
2127
+ rc = SQLBindCol ((SQLHSTMT )stmt_res -> hstmt , (SQLUSMALLINT )(i + 1 ),
2128
+ SQL_C_LONG , & row_data -> i_val , sizeof (row_data -> i_val ),
2129
+ (SQLINTEGER * )(& stmt_res -> row_data [i ].out_length ));
2130
+ if ( rc == SQL_ERROR ) {
2131
+ _php_db2_check_sql_errors ((SQLHSTMT )stmt_res -> hstmt , SQL_HANDLE_STMT , rc , 1 , NULL , -1 , 1 );
2132
+ }
2133
+ break ;
2134
+
2125
2135
case SQL_SMALLINT :
2126
2136
rc = SQLBindCol ((SQLHSTMT )stmt_res -> hstmt , (SQLUSMALLINT )(i + 1 ),
2127
2137
SQL_C_DEFAULT , & row_data -> s_val , sizeof (row_data -> s_val ),
@@ -4444,6 +4454,8 @@ static int _php_db2_bind_data( stmt_handle *stmt_res, param_node *curr, zval **b
4444
4454
}
4445
4455
4446
4456
switch ( curr -> data_type ) {
4457
+ case SQL_BOOLEAN :
4458
+ case SQL_BIT :
4447
4459
case SQL_SMALLINT :
4448
4460
case SQL_INTEGER :
4449
4461
case SQL_REAL :
@@ -5481,6 +5493,10 @@ PHP_FUNCTION(db2_field_type)
5481
5493
RETURN_FALSE ;
5482
5494
}
5483
5495
switch (stmt_res -> column_info [col ].type ) {
5496
+ case SQL_BOOLEAN :
5497
+ case SQL_BIT :
5498
+ str_val = "boolean" ;
5499
+ break ;
5484
5500
case SQL_SMALLINT :
5485
5501
case SQL_INTEGER :
5486
5502
case SQL_BIGINT :
@@ -5931,6 +5947,9 @@ PHP_FUNCTION(db2_result)
5931
5947
}
5932
5948
break ;
5933
5949
5950
+ /* BOOLEAN can't be represented as true/false because false is considered an error */
5951
+ case SQL_BOOLEAN :
5952
+ case SQL_BIT :
5934
5953
case SQL_SMALLINT :
5935
5954
case SQL_INTEGER :
5936
5955
rc = _php_db2_get_data (stmt_res , col_num + 1 , SQL_C_LONG , (SQLPOINTER )& long_val , sizeof (long_val ), & out_length );
@@ -6290,6 +6309,15 @@ static void _php_db2_bind_fetch_helper(INTERNAL_FUNCTION_PARAMETERS, int op)
6290
6309
strlen ((char * )row_data -> str_val ));
6291
6310
}
6292
6311
break ;
6312
+ case SQL_BOOLEAN :
6313
+ case SQL_BIT :
6314
+ if ( op & DB2_FETCH_ASSOC ) {
6315
+ add_assoc_bool (return_value , (char * )stmt_res -> column_info [i ].name , row_data -> i_val );
6316
+ }
6317
+ if ( op & DB2_FETCH_INDEX ) {
6318
+ add_index_bool (return_value , i , row_data -> i_val );
6319
+ }
6320
+ break ;
6293
6321
case SQL_SMALLINT :
6294
6322
if ( op & DB2_FETCH_ASSOC ) {
6295
6323
add_assoc_long (return_value , (char * )stmt_res -> column_info [i ].name , row_data -> s_val );
0 commit comments