/* fallout */
case SQL_TEXT:
val->value.str.val = (char *)emalloc(sizeof(char)*(len+1));
- strncpy(val->value.str.val, data, len);
+ memcpy(val->value.str.val, data, len);
+ val->value.str.val[len] = '\0';
if (PG(magic_quotes_runtime)) {
- /*
- char *tmp = val->value.str.val;
- */
- val->value.str.val = php_addslashes(val->value.str.val, len, &len, 0);
- /*
- efree(tmp);
- */
+ val->value.str.val = php_addslashes(val->value.str.val, len, &len, 1);
}
val->type = IS_STRING;
val->value.str.len = len;
int j, f = 1;
float n = (float) *(long *)(data);
- for (j = 0; j < -scale; j++)
+ for (j = 0; j < -scale; j++) {
f *= 10;
+ }
val->type = IS_STRING;
val->value.str.len = sprintf(string_data, "%.*f", -scale, n / f);
val->value.str.val = estrdup(string_data);
#ifdef SQL_INT64
case SQL_INT64:
val->type = IS_STRING;
- val->value.str.len = sprintf(string_data, "%Ld.%Ld",
- (ISC_INT64) (*((ISC_INT64 *)data) / (int) pow(10.0, (double) -scale)),
+ val->value.str.len = sprintf(string_data, "%Ld.%0*Ld",
+ (ISC_INT64) (*((ISC_INT64 *)data) / (int) pow(10.0, (double) -scale)), -scale,
(ISC_INT64) abs((int) (*((ISC_INT64 *)data) % (int) pow(10.0, (double) -scale))));
val->value.str.val = estrdup(string_data);
break;