]> granicus.if.org Git - php/commitdiff
closes PECL #5027; PDO_FETCH_NAMED not handled via setFetchMode().
authorWez Furlong <wez@php.net>
Sat, 10 Sep 2005 19:32:15 +0000 (19:32 +0000)
committerWez Furlong <wez@php.net>
Sat, 10 Sep 2005 19:32:15 +0000 (19:32 +0000)
ext/pdo/pdo_stmt.c

index 16bb1e6ee4469d737760f3959719442ceb3b6c39..e746ca10cd20956964837c4e7ff7e79831a098d3 100755 (executable)
@@ -1646,6 +1646,7 @@ fail_out:
                case PDO_FETCH_BOTH:
                case PDO_FETCH_OBJ:
                case PDO_FETCH_BOUND:
+               case PDO_FETCH_NAMED:
                        break;
 
                case PDO_FETCH_COLUMN:
@@ -1713,7 +1714,11 @@ fail_out:
                        break;
                
                default:
-                       pdo_raise_impl_error(stmt->dbh, stmt, "22003", "mode is out of range" TSRMLS_CC);
+                       if ((mode & ~PDO_FETCH_FLAGS) < PDO_FETCH__MAX && (mode & ~PDO_FETCH_FLAGS) >= 0) {
+                               pdo_raise_impl_error(stmt->dbh, stmt, "22003", "unhandled mode; this is a PDO bug, please report it" TSRMLS_CC);
+                       } else {
+                               pdo_raise_impl_error(stmt->dbh, stmt, "22003", "mode is out of range" TSRMLS_CC);
+                       }
                        return FAILURE;
        }