bug46139.phpt 1.0 KB

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