]> granicus.if.org Git - php/commitdiff
When working with persistent connections re-initialize options on each
authorIlia Alshanetsky <iliaa@php.net>
Thu, 28 Jun 2007 19:22:52 +0000 (19:22 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Thu, 28 Jun 2007 19:22:52 +0000 (19:22 +0000)
connection. Flags like error reporting may differ.

ext/pdo/pdo_dbh.c

index 6550b060fa158697b847d802271995dea2e37f19..cffc9863dda98b290a5fd8d5e9ac1c22436fc41b 100755 (executable)
@@ -364,6 +364,20 @@ static PHP_METHOD(PDO, dbh_constructor)
                php_error_docref(NULL TSRMLS_CC, E_ERROR, "out of memory");
        }
 
+       if (options) {
+               zval **attr_value;
+               char *str_key;
+               long long_key;
+                       
+               zend_hash_internal_pointer_reset(Z_ARRVAL_P(options));
+               while (SUCCESS == zend_hash_get_current_data(Z_ARRVAL_P(options), (void**)&attr_value) 
+                       && HASH_KEY_IS_LONG == zend_hash_get_current_key(Z_ARRVAL_P(options), &str_key, &long_key, 0)) {
+                               
+                       pdo_dbh_attribute_set(dbh, long_key, *attr_value TSRMLS_CC);
+                       zend_hash_move_forward(Z_ARRVAL_P(options));
+               }
+       }
+
        if (!call_factory) {
                /* we got a persistent guy from our cache */
                return;
@@ -391,20 +405,6 @@ static PHP_METHOD(PDO, dbh_constructor)
 
                dbh->driver = driver;
 
-               if (options) {
-                       zval **attr_value;
-                       char *str_key;
-                       long long_key;
-                       
-                       zend_hash_internal_pointer_reset(Z_ARRVAL_P(options));
-                       while (SUCCESS == zend_hash_get_current_data(Z_ARRVAL_P(options), (void**)&attr_value) 
-                                 && HASH_KEY_IS_LONG == zend_hash_get_current_key(Z_ARRVAL_P(options), &str_key, &long_key, 0)) {
-                               
-                               pdo_dbh_attribute_set(dbh, long_key, *attr_value TSRMLS_CC);
-                               zend_hash_move_forward(Z_ARRVAL_P(options));
-                       }
-               }
-
                return; 
        }