pdo_013.phpt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. --TEST--
  2. PDO Common: PDOStatement iterator
  3. --SKIPIF--
  4. <?php # vim:ft=php
  5. if (!extension_loaded('pdo')) die('skip');
  6. $dir = getenv('REDIR_TEST_DIR');
  7. if (false == $dir) die('skip no driver');
  8. require_once $dir . 'pdo_test.inc';
  9. PDOTest::skip();
  10. ?>
  11. --FILE--
  12. <?php
  13. if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
  14. require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
  15. $db = PDOTest::factory();
  16. $db->exec('CREATE TABLE test(id int NOT NULL PRIMARY KEY, val VARCHAR(10), grp VARCHAR(10))');
  17. $db->exec('INSERT INTO test VALUES(1, \'A\', \'Group1\')');
  18. $db->exec('INSERT INTO test VALUES(2, \'B\', \'Group2\')');
  19. $SELECT = 'SELECT val, grp FROM test';
  20. $stmt = $db->prepare($SELECT);
  21. $stmt->execute();
  22. $stmt->setFetchMode(PDO::FETCH_NUM);
  23. foreach ($stmt as $data)
  24. {
  25. var_dump($data);
  26. }
  27. class Test
  28. {
  29. function __construct($name = 'N/A')
  30. {
  31. echo __METHOD__ . "($name)\n";
  32. }
  33. }
  34. unset($stmt);
  35. foreach ($db->query($SELECT, PDO::FETCH_CLASS, 'Test') as $data)
  36. {
  37. var_dump($data);
  38. }
  39. unset($stmt);
  40. $stmt = $db->query($SELECT, PDO::FETCH_CLASS, 'Test', array('WOW'));
  41. foreach($stmt as $data)
  42. {
  43. var_dump($data);
  44. }
  45. ?>
  46. --EXPECTF--
  47. array(2) {
  48. [0]=>
  49. string(1) "A"
  50. [1]=>
  51. string(6) "Group1"
  52. }
  53. array(2) {
  54. [0]=>
  55. string(1) "B"
  56. [1]=>
  57. string(6) "Group2"
  58. }
  59. Test::__construct(N/A)
  60. object(Test)#%d (2) {
  61. ["val"]=>
  62. string(1) "A"
  63. ["grp"]=>
  64. string(6) "Group1"
  65. }
  66. Test::__construct(N/A)
  67. object(Test)#%d (2) {
  68. ["val"]=>
  69. string(1) "B"
  70. ["grp"]=>
  71. string(6) "Group2"
  72. }
  73. Test::__construct(WOW)
  74. object(Test)#%d (2) {
  75. ["val"]=>
  76. string(1) "A"
  77. ["grp"]=>
  78. string(6) "Group1"
  79. }
  80. Test::__construct(WOW)
  81. object(Test)#%d (2) {
  82. ["val"]=>
  83. string(1) "B"
  84. ["grp"]=>
  85. string(6) "Group2"
  86. }