diff options
author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:38:07 -0400 |
---|---|---|
committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:38:07 -0400 |
commit | bb01389fbd53ec1cbcb80d0681a37cca1267891a (patch) | |
tree | 4783178fca65a5d9071c8df34f2ddc3d31728673 /ext/pdo/pdo_sql_parser.c | |
parent | eddbbea4325e602ddc87c545531609132d4f0e3b (diff) | |
download | php-bb01389fbd53ec1cbcb80d0681a37cca1267891a.tar.gz |
Imported Upstream version 5.2.4upstream/5.2.4
Diffstat (limited to 'ext/pdo/pdo_sql_parser.c')
-rw-r--r-- | ext/pdo/pdo_sql_parser.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c index 10db41cd4..f611f10a8 100644 --- a/ext/pdo/pdo_sql_parser.c +++ b/ext/pdo/pdo_sql_parser.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.11.0 on Mon Mar 5 19:42:28 2007 */ +/* Generated by re2c 0.11.0 on Tue Jun 5 18:45:24 2007 */ /* +----------------------------------------------------------------------+ | PHP Version 5 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.11 2007/03/06 00:52:55 iliaa Exp $ */ +/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.12 2007/06/05 22:55:26 iliaa Exp $ */ #include "php.h" #include "php_pdo_driver.h" @@ -29,6 +29,7 @@ #define PDO_PARSER_EOI 4 #define RET(i) {s->cur = cursor; return i; } +#define SKIP_ONE(i) {s->cur = s->tok + 1; return 1; } #define YYCTYPE unsigned char #define YYCURSOR cursor @@ -100,7 +101,7 @@ yy2: yych = *++YYCURSOR; goto yy24; yy3: - { RET(PDO_PARSER_TEXT); } + { SKIP_ONE(PDO_PARSER_TEXT); } yy4: yych = *++YYCURSOR; goto yy20; @@ -201,6 +202,10 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, int inquery_len, while((t = scan(&s)) != PDO_PARSER_EOI) { if (t == PDO_PARSER_BIND || t == PDO_PARSER_BIND_POS) { if (t == PDO_PARSER_BIND) { + int len = s.cur - s.tok; + if ((inquery < (s.cur - len)) && isalnum(*(s.cur - len - 1))) { + continue; + } query_type |= PDO_PLACEHOLDER_NAMED; } else { query_type |= PDO_PLACEHOLDER_POSITIONAL; |