]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-5.6' into PHP-7.0
authorJulien Pauli <jpauli@php.net>
Tue, 12 Jul 2016 13:50:58 +0000 (15:50 +0200)
committerJulien Pauli <jpauli@php.net>
Tue, 12 Jul 2016 13:50:58 +0000 (15:50 +0200)
* PHP-5.6:
  Updated NEWS
  Revert "Fixes #52384: Adds parameter value to dumped output. Also adds output flag indicating presence of PDO::PARAM_INPUT_OUTPUT."
  Revert "Fix test for #52384"

Conflicts:
ext/pdo/pdo_stmt.c

1  2 
ext/pdo/pdo_stmt.c

index 3437869eec6eca5b500d81f5f4d32efbfa7e6d19,a2ae2fdf3a39e739a2fe3270694a5d662fba1551..8d1d909acc9929034f126495611df2516be1b0ac
@@@ -2118,58 -2144,28 +2118,23 @@@ static PHP_METHOD(PDOStatement, debugDu
                stmt->bound_params ? zend_hash_num_elements(stmt->bound_params) : 0);
  
        if (stmt->bound_params) {
 -              zend_hash_internal_pointer_reset_ex(stmt->bound_params, &pos);
 -              while (SUCCESS == zend_hash_get_current_data_ex(stmt->bound_params,
 -                              (void**)&param, &pos)) {
 -                      char *str;
 -                      uint len;
 -                      ulong num;
 -                      int res;
 -
 -                      res = zend_hash_get_current_key_ex(stmt->bound_params, &str, &len, &num, 0, &pos);
 -                      if (res == HASH_KEY_IS_LONG) {
 -                              php_stream_printf(out TSRMLS_CC, "Key: Position #%ld:\n", num);
 -                      } else if (res == HASH_KEY_IS_STRING) {
 -                              php_stream_printf(out TSRMLS_CC, "Key: Name: [%d] %.*s\n", len, len, str);
 +              zend_ulong num;
 +              zend_string *key = NULL;
-               zval parameter;
 +              ZEND_HASH_FOREACH_KEY_PTR(stmt->bound_params, num, key, param) {
 +                      if (key) {
 +                              php_stream_printf(out, "Key: Name: [%zd] %.*s\n",
 +                                      ZSTR_LEN(key), (int) ZSTR_LEN(key), ZSTR_VAL(key));
 +                      } else {
 +                              php_stream_printf(out, "Key: Position #%pd:\n", num);
                        }
  
-                       php_stream_printf(out, "paramno=%pd\nname=[%zd] \"%.*s\"\nis_param=%d\nparam_type=%d\nis_input_output=%d\n",
-                                       param->paramno, param->name ? ZSTR_LEN(param->name) : 0, param->name ? (int) ZSTR_LEN(param->name) : 0,
-                                       param->name ? ZSTR_VAL(param->name) : "",
-                                       param->is_param,
-                                       PDO_PARAM_TYPE(param->param_type),
-                                       (param->param_type & PDO_PARAM_INPUT_OUTPUT) == PDO_PARAM_INPUT_OUTPUT);
-                       /*
-                        * Check the type of the parameter and print out the value.
-                        *
-                        * Most are self explanatory with the following exceptions:
-                        * PDO::PARAM_INT evaluates to a long
-                        * PDO::PARAM_LOB evaluates to a string
-                        */
-                       parameter = param->parameter;
- again:
-                       switch (Z_TYPE(parameter)) {
-                               case IS_REFERENCE:
-                                       parameter = *Z_REFVAL(parameter);
-                                       goto again;
-                               case IS_TRUE:
-                                       php_stream_printf(out, "param_value=true\n");
-                                       break;
-                               case IS_FALSE:
-                                       php_stream_printf(out, "param_value=false\n");
-                                       break;
-                               case IS_NULL:
-                                       php_stream_printf(out, "param_value=null\n");
-                                       break;
-                               case IS_LONG:
-                                       php_stream_printf(out, "param_value=%ld\n", Z_LVAL(parameter));
-                                       break;
-                               case IS_STRING:
-                                       php_stream_printf(out, "param_value=%s\n", Z_STRVAL(parameter));
-                                       break;
-                               default:
-                                       php_stream_printf(out, "param_value=unknown\n");
-                                       break;
-                       }
 -                      php_stream_printf(out TSRMLS_CC, "paramno=%ld\nname=[%d] \"%.*s\"\nis_param=%d\nparam_type=%d\n",
 -                              param->paramno, param->namelen, param->namelen, param->name ? param->name : "",
 -                              param->is_param,
 -                              param->param_type);
++                      php_stream_printf(out, "paramno=%pd\nname=[%zd] \"%.*s\"\nis_param=%d\nparam_type=%d\n",
++                                                      param->paramno, param->name ? ZSTR_LEN(param->name) : 0, param->name ? (int) ZSTR_LEN(param->name) : 0,
++                                                      param->name ? ZSTR_VAL(param->name) : "",
++                                                      param->is_param,
++                                                      param->param_type);
  
 -                      zend_hash_move_forward_ex(stmt->bound_params, &pos);
 -              }
 +              } ZEND_HASH_FOREACH_END();
        }
  
        php_stream_close(out);