-/*
+/*
+----------------------------------------------------------------------+
| PHP Version 7 |
+----------------------------------------------------------------------+
#endif
col->param_type = PDO_PARAM_INT;
break;
+ case SQL_BOOLEAN:
+ col->param_type = PDO_PARAM_BOOL;
+ break;
default:
col->param_type = PDO_PARAM_STR;
break;
*ptr = FETCH_BUF(S->fetch_buf[colno], char, CHAR_BUF_LEN, NULL);
*len = slprintf(*ptr, CHAR_BUF_LEN, "%F" , *(double*)var->sqldata);
break;
+ case SQL_BOOLEAN:
+ *len = sizeof(zend_bool);
+ *ptr = FETCH_BUF(S->fetch_buf[colno], zend_bool, 1, NULL);
+ *(zend_bool*)*ptr = *(FB_BOOLEAN*)var->sqldata;
+ break;
case SQL_TYPE_DATE:
isc_decode_sql_date((ISC_DATE*)var->sqldata, &t);
fmt = S->H->date_format ? S->H->date_format : PDO_FB_DEF_DATE_FMT;
--- /dev/null
+--TEST--
+PDO_Firebird: Bug #74462 Returns only NULLs for boolean fields
+--SKIPIF--
+<?php if (!extension_loaded('interbase') || !extension_loaded('pdo_firebird')) die('skip');
+?>
+--FILE--
+<?php
+require 'testdb.inc';
+$C = new PDO('firebird:dbname='.$test_base, $user, $password) or die;
+@$C->exec('drop table atable');
+$C->exec('create table atable (id integer not null, abool boolean)');
+$C->exec('insert into atable (id, abool) values (1, true)');
+$C->exec('insert into atable (id, abool) values (2, false)');
+$C->exec('insert into atable (id, abool) values (3, null)');
+$S = $C->query('select abool from atable order by id');
+$D = $S->fetchAll(PDO::FETCH_COLUMN);
+unset($S);
+unset($C);
+var_dump($D);
+?>
+--EXPECT--
+array(3) {
+ [0]=>
+ bool(true)
+ [1]=>
+ bool(false)
+ [2]=>
+ NULL
+}
\ No newline at end of file