/** * 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); }