diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2016-12-29 12:41:39 +0100 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2016-12-29 12:59:04 +0100 |
commit | 2ba3b275948050ce600c5234b66e840b640ca5a5 (patch) | |
tree | ee8e714784de9c12e6494ba78ac0798cbd3b64ed | |
parent | 79e47aae4100accd3141357ca2e7d8dc9981da6f (diff) | |
download | php-git-2ba3b275948050ce600c5234b66e840b640ca5a5.tar.gz |
Revert "Fix #73530: Unsetting result set may reset other result set"
This reverts commit eb570294a289b45d0dd38efc71065d6b0d314c4b.
That commit caused a regression, so it's probably best to revert it, and
to tackle the issue for the next minor release.
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/sqlite3/sqlite3.c | 4 | ||||
-rw-r--r-- | ext/sqlite3/tests/bug73530.phpt | 32 |
3 files changed, 8 insertions, 32 deletions
@@ -9,6 +9,10 @@ PHP NEWS . Fixed bug #68447 (grapheme_extract take an extra trailing character). (SATŌ Kentarō) +- SQLite3: + . Reverted fix for bug #73530 (Unsetting result set may reset other result + set). (cmb) + 08 Dec 2016, PHP 5.6.29 - Mbstring: diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c index b443657e3c..80d6b897f1 100644 --- a/ext/sqlite3/sqlite3.c +++ b/ext/sqlite3/sqlite3.c @@ -2184,6 +2184,10 @@ static void php_sqlite3_result_object_free_storage(void *object TSRMLS_DC) /* {{ } if (intern->stmt_obj_zval) { + if (intern->stmt_obj->initialised) { + sqlite3_reset(intern->stmt_obj->stmt); + } + if (intern->is_prepared_statement == 0) { zval_dtor(intern->stmt_obj_zval); FREE_ZVAL(intern->stmt_obj_zval); diff --git a/ext/sqlite3/tests/bug73530.phpt b/ext/sqlite3/tests/bug73530.phpt deleted file mode 100644 index 7e17dfecd3..0000000000 --- a/ext/sqlite3/tests/bug73530.phpt +++ /dev/null @@ -1,32 +0,0 @@ ---TEST--
-Bug #73530 (Unsetting result set may reset other result set)
---SKIPIF--
-<?php
-if (!extension_loaded('sqlite3')) die('skip sqlite3 extension not available');
-?>
---FILE--
-<?php
-$db = new SQLite3(':memory:');
-$db->exec("CREATE TABLE foo (num int)");
-$db->exec("INSERT INTO foo VALUES (0)");
-$db->exec("INSERT INTO foo VALUES (1)");
-$stmt = $db->prepare("SELECT * FROM foo WHERE NUM = ?");
-$stmt->bindValue(1, 0, SQLITE3_INTEGER);
-$res1 = $stmt->execute();
-$res1->finalize();
-$stmt->clear();
-$stmt->reset();
-$stmt->bindValue(1, 1, SQLITE3_INTEGER);
-$res2 = $stmt->execute();
-while ($row = $res2->fetchArray(SQLITE3_ASSOC)) {
- var_dump($row);
- unset($res1);
-}
-?>
-===DONE===
---EXPECT--
-array(1) {
- ["num"]=>
- int(1)
-}
-===DONE===
|