Skip to content

Commit fd46184

Browse files
committed
Merge branch 'PHP-7.0'
2 parents 3d8fdd5 + 250430a commit fd46184

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

ext/sqlite3/sqlite3.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1536,8 +1536,7 @@ PHP_METHOD(sqlite3stmt, execute)
15361536
}
15371537
buffer = php_stream_copy_to_mem(stream, PHP_STREAM_COPY_ALL, 0);
15381538
} else {
1539-
convert_to_string(parameter);
1540-
buffer = Z_STR_P(parameter);
1539+
buffer = zval_get_string(parameter);
15411540
}
15421541

15431542
if (buffer) {

ext/sqlite3/tests/bug71049.phpt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
--TEST--
2+
Bug #71049 (SQLite3Stmt::execute() releases bound parameter instead of internal buffer)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded('sqlite3')) die('skip'); ?>
6+
--FILE--
7+
<?php
8+
9+
require(__DIR__ . '/new_db.inc');
10+
11+
$db->exec('CREATE TABLE test (age INTEGER, id STRING)');
12+
13+
$stmt = $db->prepare("SELECT * FROM test WHERE id = ? ORDER BY id ASC");
14+
$foo = "alive" . chr(33);
15+
$stmt->bindParam(1, $foo, SQLITE3_BLOB);
16+
$results = $stmt->execute();
17+
var_dump($foo);
18+
$db->close();
19+
?>
20+
--EXPECT--
21+
string(6) "alive!"

0 commit comments

Comments
 (0)