diff options
author | Hartmut Holzgraefe <hholzgra@php.net> | 2003-04-11 04:29:28 +0000 |
---|---|---|
committer | Hartmut Holzgraefe <hholzgra@php.net> | 2003-04-11 04:29:28 +0000 |
commit | 2f26d2b6937bbdc098f2eec821042553868025db (patch) | |
tree | 2b9c099cec69131e84b32ddf30371a61a29ff114 /ext/mysqli/mysqli_api.c | |
parent | 8da5e8e48e8b50a43655b8d401d09fe05a205a81 (diff) | |
download | php-git-2f26d2b6937bbdc098f2eec821042553868025db.tar.gz |
parameter count for bind stuff is different in OO interface
Diffstat (limited to 'ext/mysqli/mysqli_api.c')
-rw-r--r-- | ext/mysqli/mysqli_api.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index fa1aed7474..b82543ff22 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -96,12 +96,22 @@ PHP_FUNCTION(mysqli_bind_param) PR_COMMAND *prcommand; unsigned long rc; - /* check if number of parameters > 2 and odd */ - if (argc < 3 || !(argc & 1)) { + /* calculate and check number of parameters */ + num_vars = argc; + if (!getThis()) { + /* ignore handle parameter in procedural interface*/ + --num_vars; + } + if (num_vars % 2) { + /* we need variable/type pairs */ + WRONG_PARAM_COUNT; + } + if (num_vars < 2) { + /* there has to be at least one pair */ WRONG_PARAM_COUNT; - } else { - num_vars = (argc - 1) / 2; } + num_vars /= 2; + args = (zval ***)emalloc(argc * sizeof(zval **)); @@ -229,7 +239,7 @@ PHP_FUNCTION(mysqli_bind_result) PR_STMT *prstmt; PR_COMMAND *prcommand; - if (argc < 2) { + if (argc < (getThis() ? 1 : 2)) { WRONG_PARAM_COUNT; } |