mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Boolean data type support, added in Firebird 3. Fixes #74462.
This commit is contained in:
parent
e51b364a50
commit
78f23a6dd4
2 changed files with 38 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 7 |
|
||||
+----------------------------------------------------------------------+
|
||||
|
@ -229,6 +229,9 @@ static int firebird_stmt_describe(pdo_stmt_t *stmt, int colno) /* {{{ */
|
|||
#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;
|
||||
|
@ -416,6 +419,11 @@ static int firebird_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, /* {{
|
|||
*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;
|
||||
|
|
29
ext/pdo_firebird/tests/bug_74462.phpt
Normal file
29
ext/pdo_firebird/tests/bug_74462.phpt
Normal file
|
@ -0,0 +1,29 @@
|
|||
--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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue