Annotation of embedaddon/php/ext/pdo_mysql/tests/pdo_mysql_stmt_columncount.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: MySQL PDOStatement->columnCount()
3: --SKIPIF--
4: <?php
5: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
6: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
7: MySQLPDOTest::skip();
8: $db = MySQLPDOTest::factory();
9: ?>
10: --FILE--
11: <?php
12: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
13: $db = MySQLPDOTest::factory();
14: MySQLPDOTest::createTestTable($db);
15:
16: // The only purpose of this is to check if emulated and native PS
17: // return the same. If it works for one, it should work for all.
18: // Internal data structures should be the same in both cases.
19: printf("Testing emulated PS...\n");
20: try {
21: $db->setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, 1);
22: if (1 != $db->getAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY))
23: printf("[002] Unable to turn on emulated prepared statements\n");
24:
25: $stmt = $db->prepare("SELECT id, label, '?' as foo FROM test");
26: $stmt->execute();
27: var_dump($stmt->columnCount());
28:
29: $stmt = $db->query('SELECT * FROM test');
30: var_dump($stmt->columnCount());
31:
32: } catch (PDOException $e) {
33: printf("[001] %s [%s] %s\n",
34: $e->getMessage(), $db->errorCode(), implode(' ', $db->errorInfo()));
35: }
36:
37: printf("Testing native PS...\n");
38: try {
39: $db->setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, 0);
40: if (0 != $db->getAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY))
41: printf("[004] Unable to turn off emulated prepared statements\n");
42:
43: $stmt = $db->prepare("SELECT id, label, '?' as foo, 'TODO - Stored Procedure' as bar FROM test");
44: $stmt->execute();
45: var_dump($stmt->columnCount());
46:
47: $stmt = $db->query('SELECT * FROM test');
48: var_dump($stmt->columnCount());
49:
50: } catch (PDOException $e) {
51: printf("[003] %s [%s] %s\n",
52: $e->getMessage(), $db->errorCode(), implode(' ', $db->errorInfo()));
53: }
54:
55: print "done!";
56: ?>
57: --CLEAN--
58: <?php
59: require dirname(__FILE__) . '/mysql_pdo_test.inc';
60: MySQLPDOTest::dropTestTable();
61: ?>
62: --EXPECTF--
63: Testing emulated PS...
64: int(3)
65: int(2)
66: Testing native PS...
67: int(4)
68: int(2)
69: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>