summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/tests/bug67004.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pdo_mysql/tests/bug67004.phpt')
-rw-r--r--ext/pdo_mysql/tests/bug67004.phpt34
1 files changed, 34 insertions, 0 deletions
diff --git a/ext/pdo_mysql/tests/bug67004.phpt b/ext/pdo_mysql/tests/bug67004.phpt
new file mode 100644
index 0000000000..98b0a08d0c
--- /dev/null
+++ b/ext/pdo_mysql/tests/bug67004.phpt
@@ -0,0 +1,34 @@
+--TEST--
+Bug #67004: Executing PDOStatement::fetch() more than once prevents releasing resultset
+--SKIPIF--
+<?php
+require_once(__DIR__ . DIRECTORY_SEPARATOR . 'skipif.inc');
+require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
+MySQLPDOTest::skip();
+?>
+--FILE--
+<?php
+
+require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
+$dbh = MySQLPDOTest::factory();
+$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
+$dbh->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
+$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+$stmt = $dbh->prepare("SELECT ?");
+
+$stmt->execute(["foo"]);
+var_dump($stmt->fetchColumn(0));
+
+$stmt->execute(["bar"]);
+var_dump($stmt->fetchColumn(0));
+
+$stmt = $dbh->prepare("SELECT ?");
+$stmt->execute(["baz"]);
+var_dump($stmt->fetchColumn(0));
+
+?>
+--EXPECT--
+string(3) "foo"
+string(3) "bar"
+string(3) "baz"