bug78192.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. PDO SQLite Bug #78192 SegFault when reuse statement after schema change
  3. --SKIPIF--
  4. <?php
  5. if (!extension_loaded('pdo_sqlite')) print 'skip not loaded';
  6. ?>
  7. --FILE--
  8. <?php
  9. $connection = new \PDO('sqlite::memory:');
  10. $connection->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
  11. $connection->query('CREATE TABLE user (id INTEGER PRIMARY KEY NOT NULL, name VARCHAR(255) NOT NULL)');
  12. $stmt = $connection->prepare('INSERT INTO user (id, name) VALUES(:id, :name)');
  13. $stmt->execute([
  14. 'id' => 10,
  15. 'name' => 'test',
  16. ]);
  17. $stmt = $connection->prepare('SELECT * FROM user WHERE id = :id');
  18. $stmt->execute(['id' => 10]);
  19. var_dump($stmt->fetchAll(\PDO::FETCH_ASSOC));
  20. $connection->query('ALTER TABLE user ADD new_col VARCHAR(255)');
  21. $stmt->execute(['id' => 10]);
  22. var_dump($stmt->fetchAll(\PDO::FETCH_ASSOC));
  23. --EXPECT--
  24. array(1) {
  25. [0]=>
  26. array(2) {
  27. ["id"]=>
  28. string(2) "10"
  29. ["name"]=>
  30. string(4) "test"
  31. }
  32. }
  33. array(1) {
  34. [0]=>
  35. array(3) {
  36. ["id"]=>
  37. string(2) "10"
  38. ["name"]=>
  39. string(4) "test"
  40. ["new_col"]=>
  41. NULL
  42. }
  43. }