version 1.1.1.4, 2013/10/14 08:02:24
|
version 1.1.1.5, 2014/06/15 20:03:51
|
Line 228 safe:
|
Line 228 safe:
|
} |
} |
plc->freeq = 1; |
plc->freeq = 1; |
} else { |
} else { |
switch (Z_TYPE_P(param->parameter)) { | zval tmp_param = *param->parameter; |
| zval_copy_ctor(&tmp_param); |
| switch (Z_TYPE(tmp_param)) { |
case IS_NULL: |
case IS_NULL: |
plc->quoted = "NULL"; |
plc->quoted = "NULL"; |
plc->qlen = sizeof("NULL")-1; |
plc->qlen = sizeof("NULL")-1; |
Line 236 safe:
|
Line 238 safe:
|
break; |
break; |
|
|
case IS_BOOL: |
case IS_BOOL: |
convert_to_long(param->parameter); | convert_to_long(&tmp_param); |
| /* fall through */ |
case IS_LONG: |
case IS_LONG: |
case IS_DOUBLE: |
case IS_DOUBLE: |
convert_to_string(param->parameter); | convert_to_string(&tmp_param); |
plc->qlen = Z_STRLEN_P(param->parameter); | plc->qlen = Z_STRLEN(tmp_param); |
plc->quoted = Z_STRVAL_P(param->parameter); | plc->quoted = estrdup(Z_STRVAL(tmp_param)); |
plc->freeq = 0; | plc->freeq = 1; |
break; |
break; |
|
|
default: |
default: |
convert_to_string(param->parameter); | convert_to_string(&tmp_param); |
if (!stmt->dbh->methods->quoter(stmt->dbh, Z_STRVAL_P(param->parameter), | if (!stmt->dbh->methods->quoter(stmt->dbh, Z_STRVAL(tmp_param), |
Z_STRLEN_P(param->parameter), &plc->quoted, &plc->qlen, | Z_STRLEN(tmp_param), &plc->quoted, &plc->qlen, |
param->param_type TSRMLS_CC)) { |
param->param_type TSRMLS_CC)) { |
/* bork */ |
/* bork */ |
ret = -1; |
ret = -1; |
Line 258 safe:
|
Line 260 safe:
|
} |
} |
plc->freeq = 1; |
plc->freeq = 1; |
} |
} |
|
zval_dtor(&tmp_param); |
} |
} |
} else { |
} else { |
plc->quoted = Z_STRVAL_P(param->parameter); |
plc->quoted = Z_STRVAL_P(param->parameter); |