diff options
author | Wez Furlong <wez@php.net> | 2005-02-26 15:45:43 +0000 |
---|---|---|
committer | Wez Furlong <wez@php.net> | 2005-02-26 15:45:43 +0000 |
commit | 09fee0bf21e3b0db0567f198a3e9d10ac183be4d (patch) | |
tree | 62c3413bff391f71bb588cf29872393ce2adc3c0 /ext/pdo/pdo_sql_parser.c | |
parent | b4ad599df24d712e6bc4aaf30f04d3fce5658431 (diff) | |
download | php-git-09fee0bf21e3b0db0567f198a3e9d10ac183be4d.tar.gz |
and the generated file
Diffstat (limited to 'ext/pdo/pdo_sql_parser.c')
-rw-r--r-- | ext/pdo/pdo_sql_parser.c | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c index 10bf955177..96a39d8d98 100644 --- a/ext/pdo/pdo_sql_parser.c +++ b/ext/pdo/pdo_sql_parser.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.9.3 on Sun Feb 13 00:25:51 2005 */ +/* Generated by re2c 0.9.3 on Sat Feb 26 10:44:39 2005 */ #line 1 "pdo_sql_parser.re" /* +----------------------------------------------------------------------+ @@ -326,18 +326,38 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, int inquery_len, ret = -1; goto clean_up; } + plc->freeq = 1; } else { - convert_to_string(param->parameter); - if (!stmt->dbh->methods->quoter(stmt->dbh, Z_STRVAL_P(param->parameter), - Z_STRLEN_P(param->parameter), &plc->quoted, &plc->qlen, - param->param_type TSRMLS_CC)) { - /* bork */ - ret = -1; - strcpy(stmt->error_code, stmt->dbh->error_code); - goto clean_up; + switch (Z_TYPE_P(param->parameter)) { + case IS_NULL: + plc->quoted = "NULL"; + plc->qlen = sizeof("NULL")-1; + plc->freeq = 0; + break; + + case IS_BOOL: + convert_to_long(param->parameter); + case IS_LONG: + case IS_DOUBLE: + convert_to_string(param->parameter); + plc->qlen = Z_STRLEN_P(param->parameter); + plc->quoted = Z_STRLEN_P(param->parameter); + plc->freeq = 0; + break; + + default: + convert_to_string(param->parameter); + if (!stmt->dbh->methods->quoter(stmt->dbh, Z_STRVAL_P(param->parameter), + Z_STRLEN_P(param->parameter), &plc->quoted, &plc->qlen, + param->param_type TSRMLS_CC)) { + /* bork */ + ret = -1; + strcpy(stmt->error_code, stmt->dbh->error_code); + goto clean_up; + } + plc->freeq = 1; } } - plc->freeq = 1; } else { plc->quoted = Z_STRVAL_P(param->parameter); plc->qlen = Z_STRLEN_P(param->parameter); |