summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/odbc/php_odbc.c2
-rw-r--r--ext/odbc/tests/bug80152.phpt26
2 files changed, 27 insertions, 1 deletions
diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c
index e26368dfeb..0722a91e34 100644
--- a/ext/odbc/php_odbc.c
+++ b/ext/odbc/php_odbc.c
@@ -1309,7 +1309,7 @@ PHP_FUNCTION(odbc_execute)
int numArgs = ZEND_NUM_ARGS(), i, ne;
RETCODE rc;
- if (zend_parse_parameters(numArgs, "r|a", &pv_res, &pv_param_arr) == FAILURE) {
+ if (zend_parse_parameters(numArgs, "r|a/", &pv_res, &pv_param_arr) == FAILURE) {
return;
}
diff --git a/ext/odbc/tests/bug80152.phpt b/ext/odbc/tests/bug80152.phpt
new file mode 100644
index 0000000000..719ec3a516
--- /dev/null
+++ b/ext/odbc/tests/bug80152.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Bug #80152 (odbc_execute() moves internal pointer of $params)
+--SKIPIF--
+<?php include 'skipif.inc'; ?>
+--FILE--
+<?php
+include 'config.inc';
+
+$conn = odbc_connect($dsn, $user, $pass);
+odbc_exec($conn,"CREATE TABLE bug80152 (id INT, name CHAR(24))");
+$stmt = odbc_prepare($conn,"INSERT INTO bug80152 (id, name) VALUES (?, ?)");
+$params = [1, "John", "Lim"];
+var_dump(key($params));
+odbc_execute($stmt, $params);
+var_dump(key($params));
+?>
+--CLEAN--
+<?php
+include 'config.inc';
+
+$conn = odbc_connect($dsn, $user, $pass);
+odbc_exec($conn, "DROP TABLE bug80152");
+?>
+--EXPECT--
+int(0)
+int(0)