123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- --TEST--
- Bug #77051 SQLite3::bindParam memory bug when missing ::reset call
- --EXTENSIONS--
- sqlite3
- --FILE--
- <?php
- $db = new SQLite3(':memory:');
- $db->enableExceptions(true);
- $stmt = $db->prepare('SELECT :a, :b, ?;');
- $a = 42;
- $stmt->bindParam(':a', $a, SQLITE3_INTEGER);
- $stmt->bindValue(':b', 'php');
- $stmt->bindValue(':b', 'PHP');
- $stmt->bindValue(3, 424242);
- echo "Execute statement\n";
- var_dump($res = $stmt->execute());
- echo "Statement result\n";
- var_dump($res->fetchArray(SQLITE3_NUM));
- echo "Change binded param to wrong type\n";
- $a = 'TEST';
- echo "Execute statement\n";
- var_dump($res = $stmt->execute());
- echo "Statement result\n";
- var_dump($res->fetchArray(SQLITE3_NUM));
- echo "Change binded values\n";
- $a = 5252552;
- $stmt->bindValue(':b', 'TEST');
- $stmt->bindValue(3, '!!!');
- echo "Execute statement\n";
- var_dump($res = $stmt->execute());
- echo "Statement result\n";
- var_dump($res->fetchArray(SQLITE3_NUM));
- ?>
- --EXPECT--
- Execute statement
- object(SQLite3Result)#3 (0) {
- }
- Statement result
- array(3) {
- [0]=>
- int(42)
- [1]=>
- string(3) "PHP"
- [2]=>
- int(424242)
- }
- Change binded param to wrong type
- Execute statement
- object(SQLite3Result)#4 (0) {
- }
- Statement result
- array(3) {
- [0]=>
- int(0)
- [1]=>
- string(3) "PHP"
- [2]=>
- int(424242)
- }
- Change binded values
- Execute statement
- object(SQLite3Result)#3 (0) {
- }
- Statement result
- array(3) {
- [0]=>
- int(5252552)
- [1]=>
- string(4) "TEST"
- [2]=>
- string(3) "!!!"
- }
|