summaryrefslogtreecommitdiff
path: root/ext/pdo/pdo_sql_parser.c
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2005-02-26 15:45:43 +0000
committerWez Furlong <wez@php.net>2005-02-26 15:45:43 +0000
commit09fee0bf21e3b0db0567f198a3e9d10ac183be4d (patch)
tree62c3413bff391f71bb588cf29872393ce2adc3c0 /ext/pdo/pdo_sql_parser.c
parentb4ad599df24d712e6bc4aaf30f04d3fce5658431 (diff)
downloadphp-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.c40
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);