Example #1
0
 /**
  *	Executes query and returns result.
  *	@access		public
  *	@param		CMM_OSQL_Query
  *	@param		array
  */
 public function execute(\CeusMedia\Database\OSQL\Query $query)
 {
     $clock = new \Alg_Time_Clock();
     $parts = $query->render();
     $query->timeRender = $clock->stop(6, 0);
     $clock->start();
     $stmt = $this->dbc->prepare($parts[0]);
     foreach ($parts[1] as $name => $parameter) {
         $stmt->bindParam($name, $parameter['value'], $parameter['type']);
     }
     $query->timePrepare = $clock->stop(6, 0);
     $clock->start();
     $result = $stmt->execute();
     if (!$result) {
         $info = $stmt->errorInfo();
         throw new \Exception($info[2], $info[1]);
     }
     $query->timeExecute = $clock->stop(6, 0);
     if ($query instanceof \CeusMedia\Database\OSQL\Query\Select) {
         return $stmt->fetchAll($this->fetchMode);
     }
     return $result;
 }