Exemplo n.º 1
0
 /**
  * Sendet $sql an $linkName und behandelt die Antwort
  *
  * @param string $linkName Der Name des Ausgangs
  * @param string $sql Der zu verwendende SQL Inhalt
  * @param int $positiveStatus Der Status, welcher als erfolgreiche Antwort gesehen wird (Bsp.: 200)
  * @param callable $positiveMethod Im positiven Fall wird diese Methode aufgerufen
  * @param mixed[] $positiveParams Die Werte, welche an die positive Funktion übergeben werden
  * @param callable $negativeMethod Im negativen Fall wird diese Methode aufgerufen
  * @param mixed[] $negativeParams Die Werte, welche an die negative Funktion übergeben werden
  * @param bool $checkSession Ob die Sessiondaten in der Datenbank geprüft werden sollen
  * @return mixed Das Ergebnis der aufgerufenen Resultatfunktion
  */
 public function callSql($linkName, $sql, $positiveStatus, callable $positiveMethod, $positiveParams, callable $negativeMethod, $negativeParams, $checkSession = true)
 {
     $link = CConfig::getLink($this->_conf->getLinks(), $linkName);
     // starts a query, by using given sql statements/statement
     $result = DBRequest::getRoutedSql($link, $sql, $checkSession);
     // checks the correctness of the query
     if ($result['status'] == $positiveStatus) {
         // die Antwort war so, wie wir sie erwartet haben
         $queryResult = Query::decodeQuery($result['content']);
         if (!is_array($queryResult)) {
             $queryResult = array($queryResult);
         }
         // rufe nun die positive Methode auf
         return call_user_func_array($positiveMethod, array_merge(array("input" => $queryResult), $positiveParams));
     }
     // ansonsten rufen wir die negative Methode auf
     return call_user_func_array($negativeMethod, $negativeParams);
 }