pdo_013.phpt 1.7 KB

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