summaryrefslogtreecommitdiff
path: root/ext/sqlite3/sqlite3.c
diff options
context:
space:
mode:
authorChristoph M. Becker <cmb@php.net>2016-06-27 16:55:15 +0200
committerChristoph M. Becker <cmb@php.net>2016-06-27 17:06:27 +0200
commit57940605da718174cdcf5f6bf19b7ed7df27ffa6 (patch)
treed1a5e18edd43e25804d020985650a4c73fa0d86b /ext/sqlite3/sqlite3.c
parentb4873e57b434bb65a21dc189ac18a618f223a15e (diff)
downloadphp-git-57940605da718174cdcf5f6bf19b7ed7df27ffa6.tar.gz
Fix #70628: Clearing bindings on an SQLite3 statement doesn't work
Obiously, it isn't sufficient to call sqlite3_clear_bindings() alone, but also the bound_params of the php_sqlite3_stmt have to be cleared.
Diffstat (limited to 'ext/sqlite3/sqlite3.c')
-rw-r--r--ext/sqlite3/sqlite3.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index ce9472a714..4513b77d0f 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -1376,6 +1376,12 @@ PHP_METHOD(sqlite3stmt, clear)
RETURN_FALSE;
}
+ if (stmt_obj->bound_params) {
+ zend_hash_destroy(stmt_obj->bound_params);
+ FREE_HASHTABLE(stmt_obj->bound_params);
+ stmt_obj->bound_params = NULL;
+ }
+
RETURN_TRUE;
}
/* }}} */