RemoteQueryController.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. require_once(dirname(__FILE__).'/CsvController.php');
  3. class RemoteQueryController
  4. {
  5. /** @var PDO */
  6. private $dbh;
  7. /** @var PDOStatement */
  8. private $qh;
  9. private $exception;
  10. public function connectToDatabase($dsn)
  11. {
  12. try {
  13. $this->dbh = new PDO($dsn);
  14. }
  15. catch (PDOException $e)
  16. {
  17. $this->exception = $e;
  18. return false;
  19. }
  20. return true;
  21. }
  22. public function getLastException()
  23. {
  24. return $this->exception;
  25. }
  26. public function query($queryString)
  27. {
  28. if (!$this->dbh) return false;
  29. try {
  30. $this->qh = $this->dbh->query($queryString);
  31. }
  32. catch (PDOException $e)
  33. {
  34. $this->exception = $e;
  35. return false;
  36. }
  37. return true;
  38. }
  39. public function fetchAll()
  40. {
  41. if (!$this->qh) return array();
  42. return $this->qh->fetchAll(PDO::FETCH_NUM);
  43. }
  44. public function connectFetchAndConvertToCsv($dsn, $queryString)
  45. {
  46. $this->connectToDatabase($dsn);
  47. $this->query($queryString);
  48. $csvCtrl = new CsvController();
  49. return $csvCtrl->csvConvert($this->fetchAll());
  50. }
  51. }