From bb01389fbd53ec1cbcb80d0681a37cca1267891a Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Wed, 25 Mar 2009 00:38:07 -0400 Subject: Imported Upstream version 5.2.4 --- ext/pdo/pdo_sql_parser.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'ext/pdo/pdo_sql_parser.c') 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; -- cgit v1.2.3