Annotation of embedaddon/php/ext/pdo_pgsql/tests/bug62593.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: PDO PgSQL Bug #62593 (Emulate prepares behave strangely with PARAM_BOOL)
        !             3: --SKIPIF--
        !             4: <?php
        !             5: if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
        !             6: require dirname(__FILE__) . '/config.inc';
        !             7: require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
        !             8: PDOTest::skip();
        !             9: ?>
        !            10: --FILE--
        !            11: <?php
        !            12: require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
        !            13: $db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
        !            14: $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
        !            15: $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
        !            16: $errors = array();
        !            17: 
        !            18: $value = true;
        !            19: $query = $db->prepare('SELECT :foo IS FALSE as val_is_false');
        !            20: $query->bindValue(':foo', $value, PDO::PARAM_BOOL);
        !            21: $query->execute();
        !            22: $errors[] = $query->errorInfo();
        !            23: var_dump($value);
        !            24: 
        !            25: $query->bindValue(':foo', 0, PDO::PARAM_BOOL);
        !            26: $query->execute();
        !            27: $errors[] = $query->errorInfo();
        !            28: 
        !            29: // Verify bindParam maintains reference and only passes when execute is called
        !            30: $value = true;
        !            31: $query->bindParam(':foo', $value, PDO::PARAM_BOOL);
        !            32: $value = false;
        !            33: $query->execute();
        !            34: $errors[] = $query->errorInfo();
        !            35: var_dump($value);
        !            36: 
        !            37: $expect = 'No errors found';
        !            38: 
        !            39: foreach ($errors as $error)
        !            40: {
        !            41:   if (strpos('Invalid text representation', $error[2]) !== false)
        !            42:   {
        !            43:     $expect = 'Invalid boolean found';
        !            44:   }
        !            45: }
        !            46: echo $expect;
        !            47: ?>
        !            48: --EXPECTF--
        !            49: bool(true)
        !            50: bool(false)
        !            51: No errors found

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>