iliaa           Thu Oct 11 20:56:23 2007 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/pdo/tests      bug_42917.phpt 

  Modified files:              
    /php-src/ext/pdo    pdo_stmt.c 
    /php-src    NEWS 
  Log:
  MFB: Fixed bug #42917 (PDO::FETCH_KEY_PAIR doesn't work with setFetchMode)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_stmt.c?r1=1.118.2.38.2.24&r2=1.118.2.38.2.25&diff_format=u
Index: php-src/ext/pdo/pdo_stmt.c
diff -u php-src/ext/pdo/pdo_stmt.c:1.118.2.38.2.24 
php-src/ext/pdo/pdo_stmt.c:1.118.2.38.2.25
--- php-src/ext/pdo/pdo_stmt.c:1.118.2.38.2.24  Wed Sep 12 21:21:18 2007
+++ php-src/ext/pdo/pdo_stmt.c  Thu Oct 11 20:56:22 2007
@@ -18,7 +18,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: pdo_stmt.c,v 1.118.2.38.2.24 2007/09/12 21:21:18 stas Exp $ */
+/* $Id: pdo_stmt.c,v 1.118.2.38.2.25 2007/10/11 20:56:22 iliaa Exp $ */
 
 /* The PDO Statement Handle Class */
 
@@ -1260,7 +1260,7 @@
 }
 /* }}} */
 
-static int pdo_stmt_verify_mode(pdo_stmt_t *stmt, int mode, int fetch_all 
TSRMLS_DC) /* {{{ */
+static int pdo_stmt_verify_mode(pdo_stmt_t *stmt, long mode, int fetch_all 
TSRMLS_DC) /* {{{ */
 {
        int flags = mode & PDO_FETCH_FLAGS;
 
@@ -1549,7 +1549,9 @@
        if (!error)     {
                PDO_STMT_CLEAR_ERR();
                MAKE_STD_ZVAL(data);
-               if ((how & PDO_FETCH_GROUP) || how == PDO_FETCH_KEY_PAIR) {
+               if (    (how & PDO_FETCH_GROUP) || how == PDO_FETCH_KEY_PAIR || 
+                       (how == PDO_FETCH_USE_DEFAULT && 
stmt->default_fetch_type == PDO_FETCH_KEY_PAIR)
+               ) {
                        array_init(return_value);
                        return_all = return_value;
                } else {
@@ -1565,7 +1567,7 @@
                        do {
                                MAKE_STD_ZVAL(data);
                        } while (do_fetch(stmt, TRUE, data, how, 
PDO_FETCH_ORI_NEXT, 0, return_all TSRMLS_CC));
-               } else if (how == PDO_FETCH_KEY_PAIR) {
+               } else if (how == PDO_FETCH_KEY_PAIR || (how == 
PDO_FETCH_USE_DEFAULT && stmt->default_fetch_type == PDO_FETCH_KEY_PAIR)) {
                        while (do_fetch(stmt, TRUE, data, how, 
PDO_FETCH_ORI_NEXT, 0, return_all TSRMLS_CC));
                } else {
                        array_init(return_value);
@@ -1916,6 +1918,7 @@
                case PDO_FETCH_OBJ:
                case PDO_FETCH_BOUND:
                case PDO_FETCH_NAMED:
+               case PDO_FETCH_KEY_PAIR:
                        break;
 
                case PDO_FETCH_COLUMN:
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.973&r2=1.2027.2.547.2.974&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.973 php-src/NEWS:1.2027.2.547.2.974
--- php-src/NEWS:1.2027.2.547.2.973     Wed Oct 10 00:35:52 2007
+++ php-src/NEWS        Thu Oct 11 20:56:22 2007
@@ -32,6 +32,8 @@
 - Fixed htmlentities/htmlspecialchars not to accept partial multibyte
   sequences. (Stas)
 
+- Fixed bug #42917 (PDO::FETCH_KEY_PAIR doesn't work with setFetchMode).
+  (Ilia)
 - Fixed bug #42890 (Constant "LIST" defined by mysqlclient and c-client).
   (Andrey)
 - Fixed bug #42869 (automatic session id insertion adds sessions id to

http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/tests/bug_42917.phpt?view=markup&rev=1.1
Index: php-src/ext/pdo/tests/bug_42917.phpt
+++ php-src/ext/pdo/tests/bug_42917.phpt

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to