]> granicus.if.org Git - php/commitdiff
only rewrite tmp if quoter returns true
authorGeorge Schlossnagle <gschlossnagle@php.net>
Tue, 18 May 2004 05:34:52 +0000 (05:34 +0000)
committerGeorge Schlossnagle <gschlossnagle@php.net>
Tue, 18 May 2004 05:34:52 +0000 (05:34 +0000)
ext/pdo/pdo_stmt.c

index ceb67e67990f17da666e74e3f384ddb2025d15c7..1d7d4bbc9da1eb75f3f9327f0ddde3e1d50b2cb9 100755 (executable)
@@ -244,7 +244,6 @@ static PHP_METHOD(PDOStatement, execute)
                while (SUCCESS == zend_hash_get_current_data(Z_ARRVAL_P(input_params), (void*)&tmp)) {
                        char *quotedstr;
                        int  quotedstrlen;
-                       int refcount;
                        memset(&param, 0, sizeof(param));
 
                        if (HASH_KEY_IS_STRING == zend_hash_get_current_key_ex(Z_ARRVAL_P(input_params),
@@ -266,11 +265,13 @@ static PHP_METHOD(PDOStatement, execute)
                        }
 
                        param.param_type = PDO_PARAM_STR;
-                       stmt->dbh->methods->quoter(stmt->dbh, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp), &quotedstr, &quotedstrlen TSRMLS_DC);
-                       refcount = (*tmp)->refcount;
-                       zval_dtor(*tmp);
-                       ZVAL_STRINGL(*tmp, quotedstr, quotedstrlen, 0);
-                       (*tmp)->refcount = refcount;
+                       if(stmt->dbh->methods->quoter(stmt->dbh, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp), 
+                          &quotedstr, &quotedstrlen TSRMLS_DC)) {
+                               int refcount = (*tmp)->refcount;
+                               zval_dtor(*tmp);
+                               ZVAL_STRINGL(*tmp, quotedstr, quotedstrlen, 0);
+                               (*tmp)->refcount = refcount;
+                       }
                        param.parameter = *tmp;
 
                        if (!really_register_bound_param(&param, stmt, 1 TSRMLS_CC)) {