Annotation of embedaddon/php/ext/pdo_pgsql/tests/bug62593.phpt, revision 1.1.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>