123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- --TEST--
- PDO_Firebird: Bug #76488 PDO Firebird does not support boolean datatype in input parameters
- --EXTENSIONS--
- pdo_firebird
- --SKIPIF--
- <?php require('skipif.inc'); ?>
- --ENV--
- LSAN_OPTIONS=detect_leaks=0
- --FILE--
- <?php
- require 'testdb.inc';
- $sql = <<<SQL
- with t(b, s) as (
- select true, 'true' from rdb\$database
- union all
- select false, 'false' from rdb\$database
- union all
- select unknown, 'unknown' from rdb\$database
- )
- select trim(s) as s from t where b is not distinct from :p
- SQL;
- try {
- $query = $dbh->prepare($sql);
- // PDO::PARAM_BOOL
- $query->bindValue('p', 0, PDO::PARAM_BOOL);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 1, PDO::PARAM_BOOL);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', false, PDO::PARAM_BOOL);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', true, PDO::PARAM_BOOL);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 'false', PDO::PARAM_BOOL);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 'True', PDO::PARAM_BOOL);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', null, PDO::PARAM_BOOL);
- $query->execute();
- var_dump($query->fetchColumn(0));
- // PDO::PARAM_STR
- $query->bindValue('p', false, PDO::PARAM_STR);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', true, PDO::PARAM_STR);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 0, PDO::PARAM_STR);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 1, PDO::PARAM_STR);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 'false', PDO::PARAM_STR);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 'true', PDO::PARAM_STR);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', null, PDO::PARAM_STR);
- $query->execute();
- var_dump($query->fetchColumn(0));
- // PDO::PARAM_INT
- $query->bindValue('p', false, PDO::PARAM_INT);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', true, PDO::PARAM_INT);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 0, PDO::PARAM_INT);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 1, PDO::PARAM_INT);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 'false', PDO::PARAM_INT);
- $query->execute();
- var_dump($query->fetchColumn(0));
- $query->bindValue('p', 'true', PDO::PARAM_INT);
- $query->execute();
- var_dump($query->fetchColumn(0));
- echo "OK\n";
- }
- catch(Exception $e) {
- echo $e->getMessage() . '<br>';
- echo $e->getTraceAsString();
- }
- ?>
- --EXPECT--
- string(5) "false"
- string(4) "true"
- string(5) "false"
- string(4) "true"
- string(5) "false"
- string(4) "true"
- string(7) "unknown"
- string(5) "false"
- string(4) "true"
- string(5) "false"
- string(4) "true"
- string(5) "false"
- string(4) "true"
- string(7) "unknown"
- string(5) "false"
- string(4) "true"
- string(5) "false"
- string(4) "true"
- string(5) "false"
- string(4) "true"
- OK
|