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>