]> granicus.if.org Git - php/commitdiff
- MFB: Double to string conversion fix (#41698 #48924)
authorFelipe Pena <felipe@php.net>
Thu, 16 Jul 2009 22:37:24 +0000 (22:37 +0000)
committerFelipe Pena <felipe@php.net>
Thu, 16 Jul 2009 22:37:24 +0000 (22:37 +0000)
ext/pdo/pdo_stmt.c

index 405d656f89e33b3d76e9c6cc9784e4b0ddb62cf2..2c0f7a4d7ec0d685625ce6e449be068837c25be2 100755 (executable)
@@ -315,7 +315,13 @@ static int really_register_bound_param(struct pdo_bound_param_data *param, pdo_s
        }
 
        if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_STR && param->max_value_len <= 0 && ! ZVAL_IS_NULL(param->parameter)) {
-               convert_to_string(param->parameter);
+               if (Z_TYPE_P(param->parameter) == IS_DOUBLE) {
+                       char *p;
+                       int len = spprintf(&p, 0, "%.*H", (int) EG(precision), Z_DVAL_P(param->parameter));
+                       ZVAL_STRINGL(param->parameter, p, len, 0);
+               } else {
+                       convert_to_string(param->parameter);
+               }
        } else if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_INT && Z_TYPE_P(param->parameter) == IS_BOOL) {
                convert_to_long(param->parameter);
        } else if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_BOOL && Z_TYPE_P(param->parameter) == IS_LONG) {