public static function getDirections(Route $route, $version = 0) { /** * @var DB */ $dbObj = DBPool::getInstance(); $version = $version == 0 ? TableUpdate::getVersion() : $version; $dbObj->bindParams(array($route->getId(), $version)); $directions = $dbObj->get_results("SELECT * FROM direction WHERE route_id=?\n AND version = ?"); if ($dbObj->num_rows > 0) { $directionArray = array(); foreach ($directions as $d) { $dirObj = new Direction(); $dirObj->setId($d->id); $dirObj->setName($d->name); $dirObj->setPrettyName($d->pretty_name); $dirObj->setRoute($route); $dirObj->setTag($d->tag); $dirObj->setTitle($d->title); $dirObj->setPrettyTitle($d->pretty_title); $dirObj->setUseForUi($d->use_for_ui); $dirObj->setShow($d->show); $directionArray[$d->tag] = $dirObj; } return $directionArray; } else { //TODO: Don't use a generic exception throw new Exception("No data available - Direction::getDirections"); } }
protected function add(array $directions) { $insertCnt = 0; $version = TableUpdate::getVersion(); foreach ($directions as $d) { $boundParams = array($this->route->getId(), $d->getTitle(), $this->getPrettyTitle($d->getTitle()), $d->getName(), $this->getPrettyName($d->getName()), $d->getTag(), $d->getUseForUi() ? 1 : 0, $d->getShow() ? 1 : 0, $version); //var_dump($boundParams); $this->dbObj->bindParams($boundParams); $query = "INSERT INTO direction (route_id, title, pretty_title,\n name, pretty_name, tag, use_for_ui, show, version, created_date)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())"; $this->dbObj->query($query); //$this->dbObj->debug(); //print $query; if ($this->dbObj->rows_affected != 1) { throw new DBException("Addition of direction failed [agency:" . $this->route->getAgency()->getId() . "] [route tag:" . $this->route->getTag() . "] [route title:" . $this->route->getTitle() . "]"); } $insertCnt++; } //TODO: Add a log for the total number of directions added //Write the changes to the change log $this->saveChangesToFile(); }