summaryrefslogtreecommitdiff
path: root/ext/pdo_pgsql/pgsql_statement.c
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2006-03-27 20:51:01 +0000
committerWez Furlong <wez@php.net>2006-03-27 20:51:01 +0000
commitfb7d5bd7804420d86b28c0ae763d161fd3e7b370 (patch)
tree78c19dce7bf96d87f34aef5a05dedf8d5773059a /ext/pdo_pgsql/pgsql_statement.c
parent2030a7a2eda129112bb0cd05fdfe5c4aa9fb8de3 (diff)
downloadphp-git-fb7d5bd7804420d86b28c0ae763d161fd3e7b370.tar.gz
The fix for #35332 caused #35671 (and thus PECL #6504).
Partially back out that fix and introduce an extra optional step for drivers to canonicalize the "name" that is used for registering parameters.
Diffstat (limited to 'ext/pdo_pgsql/pgsql_statement.c')
-rw-r--r--ext/pdo_pgsql/pgsql_statement.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c
index 02418fa140..d83b86ad78 100644
--- a/ext/pdo_pgsql/pgsql_statement.c
+++ b/ext/pdo_pgsql/pgsql_statement.c
@@ -221,7 +221,7 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *
}
break;
- case PDO_PARAM_EVT_ALLOC:
+ case PDO_PARAM_EVT_NORMALIZE:
/* decode name from $1, $2 into 0, 1 etc. */
if (param->name) {
if (param->name[0] == '$') {
@@ -240,6 +240,10 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *
}
break;
+ case PDO_PARAM_EVT_ALLOC:
+ /* work is handled by EVT_NORMALIZE */
+ return 1;
+
case PDO_PARAM_EVT_EXEC_PRE:
if (!S->param_values) {
S->param_values = ecalloc(