pdo_022.phpt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. --TEST--
  2. PDO Common: PDOStatement::getColumnMeta
  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. * Note well: meta information is a nightmare to handle portably.
  13. * it's not really PDOs job.
  14. * We've not yet defined exactly what makes sense for getColumnMeta,
  15. * so no tests make any sense to anyone. When they do, we can enable
  16. * this test file.
  17. * TODO: filter out driver dependent components from this common core
  18. * test file.
  19. */
  20. ?>
  21. --XFAIL--
  22. This feature is not yet finalized, no test makes sense
  23. --FILE--
  24. <?php
  25. if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../../pdo/tests/');
  26. require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
  27. $db = PDOTest::factory();
  28. $db->exec('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, val VARCHAR(10), val2 VARCHAR(16))');
  29. $data = array(
  30. array('10', 'Abc', 'zxy'),
  31. array('20', 'Def', 'wvu'),
  32. array('30', 'Ghi', 'tsr'),
  33. array('40', 'Jkl', 'qpo'),
  34. array('50', 'Mno', 'nml'),
  35. array('60', 'Pqr', 'kji'),
  36. );
  37. // Insert using question mark placeholders
  38. $stmt = $db->prepare("INSERT INTO test VALUES(?, ?, ?)");
  39. foreach ($data as $row) {
  40. $stmt->execute($row);
  41. }
  42. // Retrieve column metadata for a result set returned by explicit SELECT
  43. $select = $db->query('SELECT id, val, val2 FROM test');
  44. $meta = $select->getColumnMeta(0);
  45. var_dump($meta);
  46. $meta = $select->getColumnMeta(1);
  47. var_dump($meta);
  48. $meta = $select->getColumnMeta(2);
  49. var_dump($meta);
  50. // Retrieve column metadata for a result set returned by a function
  51. $select = $db->query('SELECT COUNT(*) FROM test');
  52. $meta = $select->getColumnMeta(0);
  53. var_dump($meta);
  54. ?>
  55. --EXPECT--
  56. The unexpected!