List:Commits« Previous MessageNext Message »
From:uwendel Date:February 28 2008 4:23pm
Subject:PHP mysqlnd svn commit: r1309 - trunk/tests/ext/pdo_mysql
View as plain text  
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_mysqluwendel28 Feb