Author: uwendel
Date: 2008-03-10 11:38:17 +0100 (Mon, 10 Mar 2008)
New Revision: 1333
Added:
trunk/tests/ext/pdo_mysql/pdo_mysql_stmt_nextrowset.phpt
Log:
Seems buggs, seems to be a bug on our side.
Added: trunk/tests/ext/pdo_mysql/pdo_mysql_stmt_nextrowset.phpt
===================================================================
--- trunk/tests/ext/pdo_mysql/pdo_mysql_stmt_nextrowset.phpt (rev
0)
+++ trunk/tests/ext/pdo_mysql/pdo_mysql_stmt_nextrowset.phpt 2008-03-10 10:38:17 UTC (rev
1333)
@@ -0,0 +1,107 @@
+--TEST--
+MySQL PDOStatement->nextRowSet()
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('mysql_pdo_test.inc');
+MySQLPDOTest::skip();
+$db = MySQLPDOTest::factory();
+
+$row = $db->query('SELECT VERSION() as _version')->fetch(PDO::FETCH_ASSOC);
+$matches = array();
+if (!preg_match('/^(\d+)\.(\d+)\.(\d+)/ismU', $row['_version'], $matches))
+ die(sprintf("skip Cannot determine MySQL Server version\n"));
+
+$version = $matches[0] * 10000 + $matches[1] * 100 + $matches[2];
+if ($version < 50000)
+ die(sprintf("skip Need MySQL Server 5.0.0+, found %s.%s.%s (%d)\n",
+ $matches[0], $matches[1], $matches[2], $version);
+?>
+--FILE--
+<?php
+ require_once('mysql_pdo_test.inc');
+ $db = MySQLPDOTest::factory();
+ MySQLPDOTest::createTestTable($db);
+
+ $stmt = $db->query('SELECT id FROM test');
+ if (false !== ($tmp = $stmt->nextRowSet()))
+ printf("[002] Expecting false got %s\n", var_export($tmp, true));
+
+ // TODO: should give a warning, but its PDO, let's ignore the missing warning for now
+ if (false !== ($tmp = $stmt->nextRowSet(1)))
+ printf("[002] Expecting false got %s\n", var_export($tmp, true));
+
+ try {
+
+ $stmt = $db->query('SELECT @VERSION as _version');
+ $tmp = $stmt->fetch(PDO::FETCH_ASSOC);
+ assert($tmp['_version'] === NULL);
+
+ $db->exec('DROP PROCEDURE IF EXISTS p');
+ $db->exec('CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO
ver_param; END;');
+ $db->exec('CALL p(@VERSION)');
+ $stmt = $db->query('SELECT @VERSION as _version');
+ var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
+ var_dump($stmt->nextRowSet());
+
+ $db->exec('DROP PROCEDURE IF EXISTS p');
+ $db->exec('CREATE PROCEDURE p() BEGIN SELECT id FROM test ORDER BY id ASC LIMIT 3;
SELECT id FROM test ORDER BY id DESC LIMIT 3; END;');
+ $stmt = $db->query('CALL p()');
+ do {
+ var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
+ } while ($stmt->nextRowSet());
+ var_dump($stmt->nextRowSet());
+
+
+ } catch (PDOException $e) {
+ printf("[001] %s [%s] %s\n",
+ $e->getMessage(), $db->errorCode(), implode(' ', $db->errorInfo()));
+ }
+
+ print "done!";
+?>
+--EXPECTF--
+array(1) {
+ [0]=>
+ array(1) {
+ ["_version"]=>
+ string(%d) "%s"
+ }
+}
+bool(false)
+array(3) {
+ [0]=>
+ array(1) {
+ ["id"]=>
+ string(1) "1"
+ }
+ [1]=>
+ array(1) {
+ ["id"]=>
+ string(1) "2"
+ }
+ [2]=>
+ array(1) {
+ ["id"]=>
+ string(1) "3"
+ }
+}
+array(3) {
+ [0]=>
+ array(1) {
+ ["id"]=>
+ string(1) "3"
+ }
+ [1]=>
+ array(1) {
+ ["id"]=>
+ string(1) "2"
+ }
+ [2]=>
+ array(1) {
+ ["id"]=>
+ string(1) "1"
+ }
+}
+bool(false)
+done!
\ No newline at end of file
| Thread |
|---|
| • PHP mysqlnd svn commit: r1333 - trunk/tests/ext/pdo_mysql | uwendel | 10 Mar |