Annotation of embedaddon/php/ext/pdo_pgsql/tests/is_in_transaction.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: PDO PgSQL isInTransaction
3: --SKIPIF--
4: <?php # vim:se ft=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_ERRMODE, PDO::ERRMODE_EXCEPTION);
15: $db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
16:
17: $db->exec('CREATE TABLE test (a integer not null primary key, b text)');
18:
19: $db->beginTransaction();
20: try {
21: echo "Test PDO::PGSQL_TRANSACTION_INTRANS\n";
22: var_dump($db->inTransaction());
23:
24: $stmt = $db->prepare("INSERT INTO test (a, b) values (?, ?)");
25: $stmt->bindValue(1, 1);
26: $stmt->bindValue(2, "test insert");
27: $stmt->execute();
28:
29: $db->commit();
30:
31: echo "Test PDO::PGSQL_TRANSACTION_IDLE\n";
32: var_dump($db->inTransaction());
33:
34: $db->beginTransaction();
35:
36: try {
37: $stmt = $db->prepare("INSERT INTO test (a, b) values (?, ?)");
38: $stmt->bindValue(1, "error");
39: $stmt->bindValue(2, "test insert");
40: $stmt->execute();
41: } catch (Exception $e) {
42: /* We catch the exception because the execute will give error and we must test the PDO::PGSQL_TRANSACTION_ERROR */
43: echo "Test PDO::PGSQL_TRANSACTION_INERROR\n";
44: var_dump($db->inTransaction());
45: $db->rollBack();
46: }
47:
48: echo "Test PDO::PGSQL_TRANSACTION_IDLE\n";
49: var_dump($db->inTransaction());
50:
51: } catch (Exception $e) {
52: /* catch exceptions so that we can show the relative error */
53: echo "Exception! at line ", $e->getLine(), "\n";
54: var_dump($e->getMessage());
55: }
56:
57: ?>
58: --EXPECT--
59: Test PDO::PGSQL_TRANSACTION_INTRANS
1.1.1.2 ! misho 60: bool(true)
1.1 misho 61: Test PDO::PGSQL_TRANSACTION_IDLE
1.1.1.2 ! misho 62: bool(false)
1.1 misho 63: Test PDO::PGSQL_TRANSACTION_INERROR
1.1.1.2 ! misho 64: bool(true)
1.1 misho 65: Test PDO::PGSQL_TRANSACTION_IDLE
1.1.1.2 ! misho 66: bool(false)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>