mirror of
https://github.com/php/php-src.git
synced 2024-09-24 03:17:26 +00:00
MFB: Fixed a memory leak when named & positional params are being used in
the same query.
This commit is contained in:
parent
a289a0d435
commit
aa3222a342
@ -1,4 +1,4 @@
|
||||
/* Generated by re2c 0.9.11 on Wed Jan 25 11:35:39 2006 */
|
||||
/* Generated by re2c 0.10.6 on Sun Nov 12 12:49:46 2006 */
|
||||
#line 1 "ext/pdo/pdo_sql_parser.re"
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
@ -51,241 +51,271 @@ static int scan(Scanner *s)
|
||||
|
||||
{
|
||||
static unsigned char yybm[] = {
|
||||
0, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 52, 162, 162, 162, 162, 196,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 244, 162, 162, 162, 162, 244,
|
||||
162, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 162, 2, 162, 162, 170,
|
||||
162, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
0, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 52, 162, 162, 162, 162, 196,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 244, 162, 162, 162, 162, 244,
|
||||
162, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 162, 2, 162, 162, 170,
|
||||
162, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 170, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
};
|
||||
|
||||
#line 89 "ext/pdo/pdo_sql_parser.c"
|
||||
{
|
||||
YYCTYPE yych;
|
||||
unsigned int yyaccept = 0;
|
||||
goto yy0;
|
||||
++YYCURSOR;
|
||||
yy0:
|
||||
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
|
||||
yych = *YYCURSOR;
|
||||
if(yybm[0+yych] & 2) {
|
||||
goto yy8;
|
||||
}
|
||||
if(yych <= 0x00) goto yy11;
|
||||
if(yych <= '&') goto yy2;
|
||||
if(yych <= '\'') goto yy4;
|
||||
if(yych <= '>') goto yy5;
|
||||
goto yy6;
|
||||
yy2: yyaccept = 0;
|
||||
yych = *(YYMARKER = ++YYCURSOR);
|
||||
if(yybm[0+yych] & 64) {
|
||||
goto yy30;
|
||||
}
|
||||
if(yych <= 0x00) goto yy3;
|
||||
if(yych == '"') goto yy28;
|
||||
goto yy33;
|
||||
{
|
||||
YYCTYPE yych;
|
||||
unsigned int yyaccept = 0;
|
||||
|
||||
YYDEBUG(0, *YYCURSOR);
|
||||
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
|
||||
yych = *YYCURSOR;
|
||||
if(yybm[0+yych] & 2) {
|
||||
goto yy8;
|
||||
}
|
||||
if(yych <= 0x00) goto yy11;
|
||||
if(yych <= '&') goto yy2;
|
||||
if(yych <= '\'') goto yy4;
|
||||
if(yych <= '>') goto yy5;
|
||||
goto yy6;
|
||||
yy2:
|
||||
YYDEBUG(2, *YYCURSOR);
|
||||
yyaccept = 0;
|
||||
yych = *(YYMARKER = ++YYCURSOR);
|
||||
if(yybm[0+yych] & 64) {
|
||||
goto yy30;
|
||||
}
|
||||
if(yych <= 0x00) goto yy3;
|
||||
if(yych == '"') goto yy28;
|
||||
goto yy33;
|
||||
yy3:
|
||||
YYDEBUG(3, *YYCURSOR);
|
||||
#line 63 "ext/pdo/pdo_sql_parser.re"
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 117 "ext/pdo/pdo_sql_parser.c"
|
||||
yy4: yyaccept = 0;
|
||||
yych = *(YYMARKER = ++YYCURSOR);
|
||||
if(yybm[0+yych] & 16) {
|
||||
goto yy19;
|
||||
}
|
||||
if(yych <= 0x00) goto yy3;
|
||||
if(yych == '\'') goto yy21;
|
||||
goto yy24;
|
||||
yy5: yych = *++YYCURSOR;
|
||||
if(yybm[0+yych] & 4) {
|
||||
goto yy13;
|
||||
}
|
||||
if(yych <= 'Z'){
|
||||
if(yych <= '/') goto yy3;
|
||||
if(yych <= ':') goto yy16;
|
||||
if(yych <= '@') goto yy3;
|
||||
goto yy16;
|
||||
} else {
|
||||
if(yych <= '_'){
|
||||
if(yych <= '^') goto yy3;
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 119 "ext/pdo/pdo_sql_parser.c"
|
||||
yy4:
|
||||
YYDEBUG(4, *YYCURSOR);
|
||||
yyaccept = 0;
|
||||
yych = *(YYMARKER = ++YYCURSOR);
|
||||
if(yybm[0+yych] & 16) {
|
||||
goto yy19;
|
||||
}
|
||||
if(yych <= 0x00) goto yy3;
|
||||
if(yych == '\'') goto yy21;
|
||||
goto yy24;
|
||||
yy5:
|
||||
YYDEBUG(5, *YYCURSOR);
|
||||
yych = *++YYCURSOR;
|
||||
if(yybm[0+yych] & 4) {
|
||||
goto yy13;
|
||||
}
|
||||
if(yych <= 'Z') {
|
||||
if(yych <= '/') goto yy3;
|
||||
if(yych <= ':') goto yy16;
|
||||
if(yych <= '@') goto yy3;
|
||||
goto yy16;
|
||||
} else {
|
||||
if(yych <= '`') goto yy3;
|
||||
if(yych <= 'z') goto yy16;
|
||||
goto yy3;
|
||||
if(yych <= '_') {
|
||||
if(yych <= '^') goto yy3;
|
||||
goto yy16;
|
||||
} else {
|
||||
if(yych <= '`') goto yy3;
|
||||
if(yych <= 'z') goto yy16;
|
||||
goto yy3;
|
||||
}
|
||||
}
|
||||
}
|
||||
yy6: ++YYCURSOR;
|
||||
if(yybm[0+(yych = *YYCURSOR)] & 4) {
|
||||
yych = *YYCURSOR;
|
||||
goto yy13;
|
||||
}
|
||||
goto yy7;
|
||||
yy7:
|
||||
yy6:
|
||||
YYDEBUG(6, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(yybm[0+(yych = *YYCURSOR)] & 4) {
|
||||
goto yy13;
|
||||
}
|
||||
YYDEBUG(7, *YYCURSOR);
|
||||
#line 62 "ext/pdo/pdo_sql_parser.re"
|
||||
{ RET(PDO_PARSER_BIND_POS); }
|
||||
#line 154 "ext/pdo/pdo_sql_parser.c"
|
||||
yy8: ++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
goto yy9;
|
||||
yy9: if(yybm[0+yych] & 2) {
|
||||
goto yy8;
|
||||
}
|
||||
goto yy10;
|
||||
yy10:
|
||||
{ RET(PDO_PARSER_BIND_POS); }
|
||||
#line 160 "ext/pdo/pdo_sql_parser.c"
|
||||
yy8:
|
||||
YYDEBUG(8, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
YYDEBUG(9, *YYCURSOR);
|
||||
if(yybm[0+yych] & 2) {
|
||||
goto yy8;
|
||||
}
|
||||
YYDEBUG(10, *YYCURSOR);
|
||||
#line 64 "ext/pdo/pdo_sql_parser.re"
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 166 "ext/pdo/pdo_sql_parser.c"
|
||||
yy11: ++YYCURSOR;
|
||||
goto yy12;
|
||||
yy12:
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 173 "ext/pdo/pdo_sql_parser.c"
|
||||
yy11:
|
||||
YYDEBUG(11, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
YYDEBUG(12, *YYCURSOR);
|
||||
#line 65 "ext/pdo/pdo_sql_parser.re"
|
||||
{ RET(PDO_PARSER_EOI); }
|
||||
#line 172 "ext/pdo/pdo_sql_parser.c"
|
||||
yy13: ++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
goto yy14;
|
||||
yy14: if(yybm[0+yych] & 4) {
|
||||
goto yy13;
|
||||
}
|
||||
goto yy15;
|
||||
{ RET(PDO_PARSER_EOI); }
|
||||
#line 180 "ext/pdo/pdo_sql_parser.c"
|
||||
yy13:
|
||||
YYDEBUG(13, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
YYDEBUG(14, *YYCURSOR);
|
||||
if(yybm[0+yych] & 4) {
|
||||
goto yy13;
|
||||
}
|
||||
yy15:
|
||||
YYDEBUG(15, *YYCURSOR);
|
||||
#line 60 "ext/pdo/pdo_sql_parser.re"
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 184 "ext/pdo/pdo_sql_parser.c"
|
||||
yy16: ++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
goto yy17;
|
||||
yy17: if(yybm[0+yych] & 8) {
|
||||
goto yy16;
|
||||
}
|
||||
goto yy18;
|
||||
yy18:
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 194 "ext/pdo/pdo_sql_parser.c"
|
||||
yy16:
|
||||
YYDEBUG(16, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
YYDEBUG(17, *YYCURSOR);
|
||||
if(yybm[0+yych] & 8) {
|
||||
goto yy16;
|
||||
}
|
||||
YYDEBUG(18, *YYCURSOR);
|
||||
#line 61 "ext/pdo/pdo_sql_parser.re"
|
||||
{ RET(PDO_PARSER_BIND); }
|
||||
#line 196 "ext/pdo/pdo_sql_parser.c"
|
||||
yy19: yyaccept = 1;
|
||||
YYMARKER = ++YYCURSOR;
|
||||
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
|
||||
yych = *YYCURSOR;
|
||||
goto yy20;
|
||||
yy20: if(yybm[0+yych] & 16) {
|
||||
goto yy19;
|
||||
}
|
||||
if(yych <= '\''){
|
||||
if(yych <= 0x00) goto yy15;
|
||||
if(yych <= '&') goto yy23;
|
||||
goto yy21;
|
||||
} else {
|
||||
if(yych == '\\') goto yy26;
|
||||
goto yy23;
|
||||
}
|
||||
yy21: ++YYCURSOR;
|
||||
if(yybm[0+(yych = *YYCURSOR)] & 4) {
|
||||
{ RET(PDO_PARSER_BIND); }
|
||||
#line 207 "ext/pdo/pdo_sql_parser.c"
|
||||
yy19:
|
||||
YYDEBUG(19, *YYCURSOR);
|
||||
yyaccept = 1;
|
||||
YYMARKER = ++YYCURSOR;
|
||||
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
|
||||
yych = *YYCURSOR;
|
||||
goto yy13;
|
||||
}
|
||||
goto yy22;
|
||||
YYDEBUG(20, *YYCURSOR);
|
||||
if(yybm[0+yych] & 16) {
|
||||
goto yy19;
|
||||
}
|
||||
if(yych <= '\'') {
|
||||
if(yych <= 0x00) goto yy15;
|
||||
if(yych <= '&') goto yy23;
|
||||
} else {
|
||||
if(yych == '\\') goto yy26;
|
||||
goto yy23;
|
||||
}
|
||||
yy21:
|
||||
YYDEBUG(21, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(yybm[0+(yych = *YYCURSOR)] & 4) {
|
||||
goto yy13;
|
||||
}
|
||||
yy22:
|
||||
YYDEBUG(22, *YYCURSOR);
|
||||
#line 59 "ext/pdo/pdo_sql_parser.re"
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 222 "ext/pdo/pdo_sql_parser.c"
|
||||
yy23: ++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
goto yy24;
|
||||
yy24: if(yybm[0+yych] & 32) {
|
||||
goto yy23;
|
||||
}
|
||||
if(yych <= 0x00) goto yy25;
|
||||
if(yych <= '[') goto yy27;
|
||||
goto yy26;
|
||||
yy25: YYCURSOR = YYMARKER;
|
||||
switch(yyaccept){
|
||||
case 1: goto yy15;
|
||||
case 0: goto yy3;
|
||||
}
|
||||
yy26: ++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
if(yych == '\'') goto yy23;
|
||||
goto yy25;
|
||||
yy27: yych = *++YYCURSOR;
|
||||
goto yy22;
|
||||
yy28: ++YYCURSOR;
|
||||
if(yybm[0+(yych = *YYCURSOR)] & 4) {
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 235 "ext/pdo/pdo_sql_parser.c"
|
||||
yy23:
|
||||
YYDEBUG(23, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
goto yy13;
|
||||
}
|
||||
goto yy29;
|
||||
yy24:
|
||||
YYDEBUG(24, *YYCURSOR);
|
||||
if(yybm[0+yych] & 32) {
|
||||
goto yy23;
|
||||
}
|
||||
if(yych <= 0x00) goto yy25;
|
||||
if(yych <= '[') goto yy27;
|
||||
goto yy26;
|
||||
yy25:
|
||||
YYDEBUG(25, *YYCURSOR);
|
||||
YYCURSOR = YYMARKER;
|
||||
if(yyaccept <= 0) {
|
||||
goto yy3;
|
||||
} else {
|
||||
goto yy15;
|
||||
}
|
||||
yy26:
|
||||
YYDEBUG(26, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
if(yych == '\'') goto yy23;
|
||||
goto yy25;
|
||||
yy27:
|
||||
YYDEBUG(27, *YYCURSOR);
|
||||
yych = *++YYCURSOR;
|
||||
goto yy22;
|
||||
yy28:
|
||||
YYDEBUG(28, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(yybm[0+(yych = *YYCURSOR)] & 4) {
|
||||
goto yy13;
|
||||
}
|
||||
yy29:
|
||||
YYDEBUG(29, *YYCURSOR);
|
||||
#line 58 "ext/pdo/pdo_sql_parser.re"
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 254 "ext/pdo/pdo_sql_parser.c"
|
||||
yy30: yyaccept = 1;
|
||||
YYMARKER = ++YYCURSOR;
|
||||
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
|
||||
yych = *YYCURSOR;
|
||||
goto yy31;
|
||||
yy31: if(yybm[0+yych] & 64) {
|
||||
goto yy30;
|
||||
{ RET(PDO_PARSER_TEXT); }
|
||||
#line 278 "ext/pdo/pdo_sql_parser.c"
|
||||
yy30:
|
||||
YYDEBUG(30, *YYCURSOR);
|
||||
yyaccept = 1;
|
||||
YYMARKER = ++YYCURSOR;
|
||||
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
|
||||
yych = *YYCURSOR;
|
||||
YYDEBUG(31, *YYCURSOR);
|
||||
if(yybm[0+yych] & 64) {
|
||||
goto yy30;
|
||||
}
|
||||
if(yych <= '"') {
|
||||
if(yych <= 0x00) goto yy15;
|
||||
if(yych >= '"') goto yy28;
|
||||
} else {
|
||||
if(yych == '\\') goto yy34;
|
||||
}
|
||||
yy32:
|
||||
YYDEBUG(32, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
yy33:
|
||||
YYDEBUG(33, *YYCURSOR);
|
||||
if(yybm[0+yych] & 128) {
|
||||
goto yy32;
|
||||
}
|
||||
if(yych <= 0x00) goto yy25;
|
||||
if(yych <= '[') goto yy35;
|
||||
yy34:
|
||||
YYDEBUG(34, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
if(yych == '"') goto yy32;
|
||||
goto yy25;
|
||||
yy35:
|
||||
YYDEBUG(35, *YYCURSOR);
|
||||
++YYCURSOR;
|
||||
yych = *YYCURSOR;
|
||||
goto yy29;
|
||||
}
|
||||
if(yych <= '"'){
|
||||
if(yych <= 0x00) goto yy15;
|
||||
if(yych >= '"') goto yy28;
|
||||
goto yy32;
|
||||
} else {
|
||||
if(yych == '\\') goto yy34;
|
||||
goto yy32;
|
||||
}
|
||||
yy32: ++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
goto yy33;
|
||||
yy33: if(yybm[0+yych] & 128) {
|
||||
goto yy32;
|
||||
}
|
||||
if(yych <= 0x00) goto yy25;
|
||||
if(yych <= '[') goto yy35;
|
||||
goto yy34;
|
||||
yy34: ++YYCURSOR;
|
||||
if(YYLIMIT == YYCURSOR) YYFILL(1);
|
||||
yych = *YYCURSOR;
|
||||
if(yych == '"') goto yy32;
|
||||
goto yy25;
|
||||
yy35: ++YYCURSOR;
|
||||
yych = *YYCURSOR;
|
||||
goto yy29;
|
||||
}
|
||||
}
|
||||
#line 66 "ext/pdo/pdo_sql_parser.re"
|
||||
|
||||
@ -353,7 +383,8 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, int inquery_len,
|
||||
if (query_type == (PDO_PLACEHOLDER_NAMED|PDO_PLACEHOLDER_POSITIONAL)) {
|
||||
/* they mixed both types; punt */
|
||||
pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "mixed named and positional parameters" TSRMLS_CC);
|
||||
return -1;
|
||||
ret = -1;
|
||||
goto clean_up;
|
||||
}
|
||||
|
||||
|
||||
|
@ -128,7 +128,8 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, int inquery_len,
|
||||
if (query_type == (PDO_PLACEHOLDER_NAMED|PDO_PLACEHOLDER_POSITIONAL)) {
|
||||
/* they mixed both types; punt */
|
||||
pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "mixed named and positional parameters" TSRMLS_CC);
|
||||
return -1;
|
||||
ret = -1;
|
||||
goto clean_up;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user