pdo_022.phpt 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. --TEST--
  2. PDO Common: PDOStatement::getColumnMeta
  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. * Note well: meta information is a nightmare to handle portably.
  12. * it's not really PDOs job.
  13. * We've not yet defined exactly what makes sense for getColumnMeta,
  14. * so no tests make any sense to anyone. When they do, we can enable
  15. * this test file.
  16. * TODO: filter out driver dependent components from this common core
  17. * test file.
  18. */
  19. ?>
  20. --XFAIL--
  21. This feature is not yet finalized, no test makes sense
  22. --FILE--
  23. <?php
  24. if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
  25. require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
  26. $db = PDOTest::factory();
  27. $db->exec('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, val VARCHAR(10), val2 VARCHAR(16))');
  28. $db->exec('insert2', "INSERT INTO test VALUES(:first, :second, :third)");
  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!