Author: uwendel
Date: 2008-02-28 16:23:51 +0100 (Thu, 28 Feb 2008)
New Revision: 1309
Added:
trunk/tests/ext/pdo_mysql/pdo_mysql_stmt_columncount.phpt
Log:
Needs to be extended later. Only improvement over the generic test is that it check both
emulated and native PS.
Added: trunk/tests/ext/pdo_mysql/pdo_mysql_stmt_columncount.phpt
===================================================================
--- trunk/tests/ext/pdo_mysql/pdo_mysql_stmt_columncount.phpt (rev
0)
+++ trunk/tests/ext/pdo_mysql/pdo_mysql_stmt_columncount.phpt 2008-02-28 15:23:51 UTC (rev
1309)
@@ -0,0 +1,63 @@
+--TEST--
+MySQL PDOStatement->columnCount()
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('mysql_pdo_test.inc');
+MySQLPDOTest::skip();
+$db = MySQLPDOTest::factory();
+?>
+--FILE--
+<?php
+ require_once('mysql_pdo_test.inc');
+ $db = MySQLPDOTest::factory();
+ MySQLPDOTest::createTestTable($db);
+
+ // The only purpose of this is to check if emulated and native PS
+ // return the same. If it works for one, it should work for all.
+ // Internal data structures should be the same in both cases.
+ printf("Testing native PS...\n");
+ try {
+ $db->setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, 1);
+ if (1 != $db->getAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY))
+ printf("[002] Unable to turn off emulated prepared statements\n");
+
+ $stmt = $db->prepare('SELECT id, label, "?" as foo FROM test');
+ $stmt->execute();
+ var_dump($stmt->columnCount());
+
+ $stmt = $db->query('SELECT * FROM test');
+ var_dump($stmt->columnCount());
+
+ } catch (PDOException $e) {
+ printf("[001] %s [%s] %s\n",
+ $e->getMessage(), $db->errorCode(), implode(' ', $db->errorInfo()));
+ }
+
+ printf("Testing emulated PS...\n");
+ try {
+ $db->setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, 0);
+ if (0 != $db->getAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY))
+ printf("[004] Unable to turn on emulated prepared statements\n");
+
+ $stmt = $db->prepare('SELECT id, label, "?" as foo, "TODO - Stored Procedure" as bar
FROM test');
+ $stmt->execute();
+ var_dump($stmt->columnCount());
+
+ $stmt = $db->query('SELECT * FROM test');
+ var_dump($stmt->columnCount());
+
+ } catch (PDOException $e) {
+ printf("[003] %s [%s] %s\n",
+ $e->getMessage(), $db->errorCode(), implode(' ', $db->errorInfo()));
+ }
+ print "done!";
+?>
+--EXPECTF--
+Testing native PS...
+int(3)
+int(2)
+Testing emulated PS...
+int(4)
+int(2)
+done!
\ No newline at end of file
| Thread |
|---|
| • PHP mysqlnd svn commit: r1309 - trunk/tests/ext/pdo_mysql | uwendel | 28 Feb |