Annotation of embedaddon/php/ext/pdo/tests/pdo_017.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: PDO Common: transactions
3: --SKIPIF--
4: <?php # vim:ft=php
5: if (!extension_loaded('pdo')) die('skip');
6: $dir = getenv('REDIR_TEST_DIR');
7: if (false == $dir) die('skip no driver');
8: require_once $dir . 'pdo_test.inc';
9: PDOTest::skip();
10:
11: $db = PDOTest::factory();
12: try {
13: $db->beginTransaction();
14: } catch (PDOException $e) {
15: die('skip no working transactions: ' . $e->getMessage());
16: }
17:
18: if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
19: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
20: if (false === MySQLPDOTest::detect_transactional_mysql_engine($db)) {
21: die('skip your mysql configuration does not support working transactions');
22: }
23: }
24: ?>
25: --FILE--
26: <?php
27: if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
28: require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
29: $db = PDOTest::factory();
30:
31: if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
32: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
33: $suf = ' ENGINE=' . MySQLPDOTest::detect_transactional_mysql_engine($db);
34: } else {
35: $suf = '';
36: }
37:
38: $db->exec('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, val VARCHAR(10))'.$suf);
39: $db->exec("INSERT INTO test VALUES(1, 'A')");
40: $db->exec("INSERT INTO test VALUES(2, 'B')");
41: $db->exec("INSERT INTO test VALUES(3, 'C')");
42: $delete = $db->prepare('DELETE FROM test');
43:
44: function countRows($action) {
45: global $db;
46: $select = $db->prepare('SELECT COUNT(*) FROM test');
47: $select->execute();
48: $res = $select->fetchColumn();
49: return "Counted $res rows after $action.\n";
50: }
51:
52: echo countRows('insert');
53:
54: $db->beginTransaction();
55: $delete->execute();
56: echo countRows('delete');
57: $db->rollBack();
58:
59: echo countRows('rollback');
60:
61: $db->beginTransaction();
62: $delete->execute();
63: echo countRows('delete');
64: $db->commit();
65:
66: echo countRows('commit');
67:
68: ?>
69: --EXPECT--
70: Counted 3 rows after insert.
71: Counted 0 rows after delete.
72: Counted 3 rows after rollback.
73: Counted 0 rows after delete.
74: Counted 0 rows after commit.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>