/** * Errechnet den aktuellen Bewertungsdurchschnitt für das übergebene Entity * * @param $entityName * @param $id * @return mixed */ public static function durchschnittFuer($entityName, $id) { $sql = 'select avg(ko_bewertung) wert from kommentare where ko_element_tabelle = :tabelle and ko_element_id = :element_id'; Database::getInstance()->query($sql, ['tabelle' => $entityName, 'element_id' => $id]); $row = Database::getInstance()->fetch(); return $row->wert; }
public static function doesExists($userId, $rolleId) { $sql = 'select count(*) anzahl from userrollen where ur_user = :user and ur_rolle = :rolle'; Database::getInstance()->query($sql, array('user' => $userId, 'rolle' => $rolleId)); $row = Database::getInstance()->fetch(); return $row['anzahl'] > 0; }
/** * Die Daten werden geladen und die einzelnen Checkboxen * zugeordnet. */ protected function load() { // Daten laden $this->lookupentity->searchDataset($this->filter, false, 0, 100); $field = $this->textfield; while ($row = Database::getInstance()->fetch()) { $this->lookupentity->loadFromRow($row); $this->addBox($row[$this->valuefield], $this->lookupentity->{$field}, $this->id . '[]', false); } $this->loaded = true; }
/** * Commitet die gerade aktive Transaction */ public static function commitTransaction() { Database::getInstance()->pdo->commit(); }
/** * Startet die Verarbeitung des aktuellen Aufrufs. * * @param boolean $admin true, falls Aufruf der Administration */ public static function start($admin = false) { // Bootstrapping der konkreten App aufrufen (vor dem Laden der Session!) // Beim Laden der Session werden u.a. schon DB-Abfragen ausgeführt. Einstellungen, // die die DB betreffen müssen also vorher (!) gemacht werden. include Environment::get()->srcDir . '/Bootstrap.php'; $application = self::getInstance(); $application->startSession(); Debug::init(); // Konkrete Applikation initialisieren (nach dem Laden der Session!) include Environment::get()->srcDir . '/InitApplication.php'; // Request parsen und ausführen $request = $application->parseRequest(); $request = self::sanitizeRequest($request, $admin); $application->handleRequest($request); // DB Verbindung garantiert trennen Database::getInstance()->close(); }
public function search() { // TODO: Was macht das denn hier? Application::getInstance()->setCurrentPage(new Page(98)); $sql = "select\n pa_bezeichnung, pa_link, te_text \n from cmsartikel\n join texte on te_element = CONCAT('cmsartikel.', ca_id, '.intro') and te_sprache = 1\n join pages on pa_parameter = CONCAT('id=', ca_id)\n \n where upper(te_text) like upper(:suchbegriff)"; $db = Database::getInstance(); $db->query($sql, array('suchbegriff' => '%' . $this->request->suchbegriff . '%')); $this->hits = array(); while ($row = $db->fetch()) { $this->hits[] = array('page' => $row['pa_bezeichnung'], 'link' => $row['pa_link'], 'text' => $this->getShortText($row['te_text'])); } }
<?php use NewFrontiers\Framework\Core\ConfigurationProvider; use NewFrontiers\Framework\Database\Database; use Nostromo\Contracts\Facades\Configuration; use NewFrontiers\Framework\Core\Application; use Symfony\Component\EventDispatcher\EventDispatcher; // Registrieren der benötigten Services Application::register('configuration', ConfigurationProvider::getInstance()); Application::register('module', new \NewFrontiers\Provider\Module\XmlModuleProvider()); Application::register('logging', new \NewFrontiers\Provider\Logging\MemoryLoggingProvider()); Application::register('routing', new \NewFrontiers\Provider\Routing\SitemapRoutingProvider()); Application::register('security', new \NewFrontiers\Provider\Security\SqlSecurityProvider()); Application::register('cache', new NewFrontiers\Provider\Cache\SessionCacheProvider()); Application::register('dispatcher', new EventDispatcher()); Application::register('default_database', new Database()); // Datenbank-Engine auf MySQL setzen Database::getInstance()->setEngine(Configuration::get('database.engine', Database::DB_MYSQL));
/** * Führt die Query, die der Query-Builder representiert aus. * @param array $parameter * @param Database $db Die Datenbank-Verbindung, die verwendet werden soll. */ public function open(&$parameter = array(), $db = null) { // Falls eine DB übergeben wurde diese auch benutzen if ($db !== null) { $this->db = $db; } // Falls nichts übergeben wurde und auch vorher nichts gesetzt wurde, das Default nehmen if ($this->db === null) { $this->db = Database::getInstance(); } $this->db->query($this->generateQuery($parameter), $parameter); }
public function loadAnonymous() { $table = Database::getEntityName('user'); $id = Database::getInstance()->skalar("select us_id from {$table} where us_anonymous = 1"); $user = new User($id); $_SESSION['id'] = $user->id; $_SESSION['sp_id'] = $user->us_sprache; $_SESSION['name'] = 'nicht angemeldet'; $_SESSION['loggedin'] = false; $this->loadRollen($user->id); Site::flushCache(); }
protected function addMenuitems() { Logging::info('Bearbeite Menü'); // TODO: Site dynamisieren $db = Database::getInstance(); $db->query('select pa_link from pages where pa_site = 2 and pa_ausblenden = 0'); while ($row = $db->fetch()) { if ($row['pa_link'] != '') { $link = Configuration::get('site.url') . '/' . rawurlencode($row['pa_link']); $this->addItem($link, 0.5, 'daily'); } } }
public function byBuilder(QueryBuilder $builder) { $result = []; $db = Database::getInstance(); // Das alte Statement wird zwischengespeichert, so dass dieses beim Aufruf der // neuen Query nicht automatisch gestartet wird. $oldStatement = $db->getStatement(); $db->setStatement(); $parameter = array(); $db->query($builder->generateQuery($parameter), $parameter); // Auch das jetzige Statement wird zwischengepsiehcert, da Queries, die u.U. beim // Laden der Datensätze ausgeführt werden nicht diese Query zu machen $statement = $db->getStatement(); $db->setStatement(); while ($row = $db->fetch($statement)) { /** @var BaseEntity $obj */ $obj = $this->getNewInstanceOfEntity(); $obj->loadFromRow($row); $result[] = $obj; } // Aktuelles Statement schließen und den alten Zustand wieder herstellen $statement->closeCursor(); $db->setStatement($oldStatement); unset($statement, $oldStatement); return $result; }
private function executeCreateIndex() { $feld = $this->fields[0]; $sql = "CREATE INDEX idx_{$this->table}_{$feld->name} ON {$this->table} ({$feld->name})"; Database::getInstance()->execute($sql); }
/** * Diese Methode überprüft ob sichtbare Unterpunkte zu diesem Menüpunkt * existieren und aktualisiert das Feld entsprechend. Der Datensatz wird * automatisch gespeichert. * @param bool $force Falls true, wird hasChildren auf jeden Fall auf 1 gesetzt. */ public function recalcChildren($force = false) { if ($force) { $this->pa_haschildren = 1; $this->save(); return; } $sql = 'select count(*) anzahl from pages where pa_parent = :id and pa_ausblenden = 0'; $anzahl = Database::getInstance()->skalar($sql, array('id' => $this->id)); $this->pa_haschildren = 0; if ((int) $anzahl >= 1) { $this->pa_haschildren = 1; } $this->save(); }