bug46139.phpt 948 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. --TEST--
  2. Bug #46139 (PDOStatement->setFetchMode() forgets FETCH_PROPS_LATE)
  3. --EXTENSIONS--
  4. pdo_sqlite
  5. --FILE--
  6. <?php
  7. require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
  8. $db = PDOTest::test_factory(__DIR__ . '/common.phpt');
  9. class Person {
  10. public $test = NULL;
  11. public function __construct() {
  12. var_dump($this->test);
  13. }
  14. }
  15. $stmt = $db->query("SELECT 'foo' test, 1");
  16. $stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'Person');
  17. $r1 = $stmt->fetch();
  18. printf("'%s'\n", $r1->test);
  19. $stmt = $db->query("SELECT 'foo' test, 1");
  20. $stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'Person');
  21. $r1 = $stmt->fetchAll();
  22. printf("'%s'\n", $r1[0]->test);
  23. $stmt = $db->query("SELECT 'foo' test, 1");
  24. $stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'Person');
  25. $r1 = $stmt->fetch(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE);
  26. printf("'%s'\n", $r1->test);
  27. ?>
  28. --EXPECT--
  29. NULL
  30. 'foo'
  31. NULL
  32. 'foo'
  33. NULL
  34. 'foo'