dbh = new PDO($dsn); } catch (PDOException $e) { $this->exception = $e; } } public function isConnected () { return ($this->dbh instanceof PDO); } public function getLastException () { return $this->exception; } public function executeAndConvertToCsv ($queryString) { $csvCtrl = new CsvController(); $this->executeAndImport($queryString, array($csvCtrl, "encodeRow")); return $csvCtrl->exportToString(); } public function executeAndImport($queryString, $callback) { $this->query($queryString); return $this->import($callback); } public function query ($queryString) { if (!$this->dbh) return false; try { $this->qh = $this->dbh->query($queryString); } catch (PDOException $e) { $this->exception = $e; return false; } return true; } public function fetchAll () { if (!$this->qh) return array(); return $this->qh->fetchAll(PDO::FETCH_NUM); } public function import ($callback) { if (!$this->qh) return false; $i = 0; while ($row = $this->qh->fetch(PDO::FETCH_ASSOC)) { call_user_func($callback, $row); $i++; } return $i; } }