pdo_038.phpt 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. PDOStatement::fetchColumn() invalid column index
  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. function fetchColumn($stmt, $index) {
  17. $stmt->execute();
  18. return $stmt->fetchColumn($index);
  19. }
  20. $conn = PDOTest::factory();
  21. $query = 'SELECT 1';
  22. switch ($conn->getAttribute(PDO::ATTR_DRIVER_NAME)) {
  23. case 'oci':
  24. $query .= ' FROM DUAL';
  25. break;
  26. case 'firebird':
  27. $query .= ' FROM RDB$DATABASE';
  28. break;
  29. }
  30. $stmt = $conn->prepare($query);
  31. try {
  32. var_dump(fetchColumn($stmt, -1));
  33. } catch (\ValueError $e) {
  34. echo $e->getMessage(), \PHP_EOL;
  35. }
  36. var_dump(fetchColumn($stmt, 0));
  37. try {
  38. var_dump(fetchColumn($stmt, 1));
  39. } catch (\ValueError $e) {
  40. echo $e->getMessage(), \PHP_EOL;
  41. }
  42. ?>
  43. --EXPECT--
  44. Column index must be greater than or equal to 0
  45. string(1) "1"
  46. Invalid column index