Ergebnis 1 bis 3 von 3

Thema: Database Klasse

  1. #1
    Contao-Nutzer
    Registriert seit
    19.06.2009.
    Beiträge
    15

    Standard Database Klasse

    Hab da mal ein paar Fragen dazu.
    Die Datebaseklasse stellt ja mehr oder weniger die Schnittstelle zur DB in TL da.

    Jetzt will ich damit auch selber SQL Abfragen an die DB senden.
    Und müsste dazu strings escapen, was aber afaik nicht ganz möglich ist:
    Usage example:
    $objStatement->prepare("UPDATE table %s")->set(array('id'=>'my_id')); will be transformed into "UPDATE table SET id='my_id'"
    Nun will ich aber DB Funktionen nutzen, z.B. SHA1, MD5 oder andere (YEAR,MONTH, u.a. z.B.).
    So fern ich Einblick in die Dokumentation auf api.https://contao.org hatte, geht genau das (teilweise?) nicht.
    Zumindest nach meinem Verständnis, string_escape welches auf das array bei set (escapeParameter) aufgerufen wird, setzt automatisch ''.

    Was passiert nun in einem solchen Szenario:
    ...->set(array('id'=>"SHA1('my_id')")); ?

    Auch würde mich interessieren, für was die Database ein Singleton ist, unterbindet dies doch leider die Nutzung weiterer Datenbanken innerhalb von TL.

    phlox
    Geändert von phlox81 (30.07.2009 um 22:32 Uhr)

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.522
    User beschenken
    Wunschliste

    Standard

    Versteh dein Problem nicht ganz, wieso solltest Du diese Funktionen nicht nutzen können?
    Mal Schnippsel aus meinem Modul:
    Code:
    $this->Database->prepare("SELECT SUM(visitors_visit) AS SUMV"
    ." , DATEDIFF(MAX( visitors_date ), MIN( visitors_date )) AS DAYS"
    ." FROM tl_visitors_counter"
    ." WHERE vid=? AND visitors_date<?")
     ->execute($objVisitors->id,date('Y-m-d'));
    
    $this->Database->prepare("DELETE FROM tl_visitors_blocker"
    ." WHERE CURRENT_TIMESTAMP - INTERVAL ? SECOND > visitors_tstamp"
    ." AND vid=?")
    ->execute($BlockTime, $vid);
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Contao-Nutzer
    Registriert seit
    19.06.2009.
    Beiträge
    15

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Versteh dein Problem nicht ganz, wieso solltest Du diese Funktionen nicht nutzen können?
    Mal Schnippsel aus meinem Modul:
    Code:
    $this->Database->prepare("SELECT SUM(visitors_visit) AS SUMV"
    ." , DATEDIFF(MAX( visitors_date ), MIN( visitors_date )) AS DAYS"
    ." FROM tl_visitors_counter"
    ." WHERE vid=? AND visitors_date<?")
     ->execute($objVisitors->id,date('Y-m-d'));
    
    $this->Database->prepare("DELETE FROM tl_visitors_blocker"
    ." WHERE CURRENT_TIMESTAMP - INTERVAL ? SECOND > visitors_tstamp"
    ." AND vid=?")
    ->execute($BlockTime, $vid);
    thx. das Beispiel macht es etwas klarer für mich.

    Die Parameter kann ich also dann einfach als Parameter in die execute einhängen.
    Für mich als C++ Programmierer geht sowas eigentlich garnicht %)

    Gut, hat sich das geklärt.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. database.sql und Views
    Von gintoxin im Forum Entwickler-Fragen
    Antworten: 3
    Letzter Beitrag: 28.04.2010, 07:23
  2. 2.8.x: Database::execute() vs. Database::executeUncached()
    Von deerwood im Forum Entwickler-Fragen
    Antworten: 11
    Letzter Beitrag: 03.03.2010, 09:31
  3. Could not connect to database!
    Von okni im Forum Installation / Update
    Antworten: 6
    Letzter Beitrag: 08.01.2010, 22:03
  4. database.sql und Insert Into
    Von k1-marketing im Forum Entwickler-Fragen
    Antworten: 1
    Letzter Beitrag: 29.07.2009, 14:05

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •