From 5180421361f5d59ea816ad68dbd6ca8b74bc95dc Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Thu, 16 Jul 2009 22:37:24 +0000 Subject: [PATCH] - MFB: Double to string conversion fix (#41698 #48924) --- ext/pdo/pdo_stmt.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 405d656f89..2c0f7a4d7e 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -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) { -- 2.40.0