diff options
author | Popa Adrian Marius <mariuz@php.net> | 2011-12-28 18:52:39 +0000 |
---|---|---|
committer | Popa Adrian Marius <mariuz@php.net> | 2011-12-28 18:52:39 +0000 |
commit | 0b692661d4fe1f879b74625532e5802561c7e857 (patch) | |
tree | b5de98547d859f341e2de393123d1172b956bac6 /ext/pdo_firebird | |
parent | cfe00e6053832475ecda024f374fa58d740fc818 (diff) | |
download | php-git-0b692661d4fe1f879b74625532e5802561c7e857.tar.gz |
Added test case for PDO_Firebird: bug 53280 segfaults if query column count is less than param count
Diffstat (limited to 'ext/pdo_firebird')
-rw-r--r-- | ext/pdo_firebird/tests/bug_53280.phpt | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/ext/pdo_firebird/tests/bug_53280.phpt b/ext/pdo_firebird/tests/bug_53280.phpt new file mode 100644 index 0000000000..48fe483bb9 --- /dev/null +++ b/ext/pdo_firebird/tests/bug_53280.phpt @@ -0,0 +1,63 @@ +--TEST-- +PDO_Firebird: bug 53280 segfaults if query column count is less than param count +--SKIPIF-- +<?php extension_loaded("pdo_firebird") or die("skip"); ?> +--FILE-- +<?php + +require("testdb.inc"); + +$dbh = new PDO("firebird:dbname=$test_base",$user,$password) or die; +$value = '2'; +@$dbh->exec('DROP TABLE testz'); +$dbh->exec('CREATE TABLE testz(A VARCHAR(30), B VARCHAR(30), C VARCHAR(30))'); +$dbh->exec("INSERT INTO test VALUES ('A', 'B', 'C')"); +$dbh->commit(); + +$stmt1 = "SELECT B FROM test WHERE A = ? AND B = ?"; +$stmt2 = "SELECT B, C FROM test WHERE A = ? AND B = ?"; + +$stmth2 = $dbh->prepare($stmt2); +$stmth2->execute(array('A', 'B')); +$rows = $stmth2->fetchAll(); // <------ OK +var_dump($rows); + +$stmth1 = $dbh->prepare($stmt1); +$stmth1->execute(array('A', 'B')); +$rows = $stmth1->fetchAll(); // <------- segfault +var_dump($rows); + +$stmt = $dbh->prepare('DELETE FROM testz'); +$stmt->execute(); + +$dbh->commit(); + +$dbh->exec('DROP TABLE testz'); + +unset($stmt); +unset($dbh); + +?> +--EXPECT-- +array(1) { + [0]=> + array(4) { + ["B"]=> + string(1) "B" + [0]=> + string(1) "B" + ["C"]=> + string(1) "C" + [1]=> + string(1) "C" + } +} +array(1) { + [0]=> + array(2) { + ["B"]=> + string(1) "B" + [0]=> + string(1) "B" + } +} |