DBUtilities

Allgemeines

  • Liegt in tools und heisst dbutilities.inc.php
  • Die Methoden sind statisch und lassen sich über DB::foo() aufrufen
  • Die DB Ressource und das aktuelle Schema wird automatisch geholt. Tabellen, die nicht in dem Schema existieren kommen dann aus public.
  • Geschrieben wir nur in das Schema
  • Doppelte Tabellen, also die in beiden Schemas existieren sollten über ein View geholt werden

Methoden

  • Beispiele siehe unten
  • Kursive Parameter sind optional!
  • Fast alle Methoden haben den Parameter $type, das ist ein String mit dem Tabellennamen. Ich hab ihn unter Parametertypen nicht extra aufgeführt.
Methode Parametertypen Rückgabe Beschreibung
createItem($type, $values) $values:asocarray( spalte⇒werte) Das Resultobjekt Erzeugt eine Zeile in der Tabelle, die Spalte id wird dabei ignoriert ( die sollte als serial in der DB angegeben sein).
deleteItem($type, $id) $id:int/string Das Resultobjekt Löscht die Zeile mit der id.
exec($sql) $sql:string Das Resultobjekt Führt den SQL Befehl aus.
getData($type,$col) ... ... Holt Daten aus der Datatab, nicht direkt aufrufen.
getDefinition($type) array( assocarray( colname, type, description) Holt die Metadaten einer Tabelle. Name der Spalte, Datentyp und das COMMENT
getDistinctList($type, $cols) $cols:array array(assocarray(spalten...)) Holt eine Liste aller Einträge DISTINCT über die übergebenen Spalten
getItem($type, $id) $id:string/int assocarray(spalten...) Holt einen Eintrag/eine Zeile mit der id
getList($type,$cols,$order) $cols:array(spalte), $order:string array(assocarray(spalten)) Holt eine Liste mit Einträgen, optional nur die übegrebenen Spalten. Über $order kann eine Sortierung usw. übergeben werden, der string wird angehangen.
getListCount($type) Die Anzahl Gibt die Anzahl der Einträge zurück. TODO $order einbauen
getNamedItem($type, $name) $name:string assocarray(spalten...) Wie getItem nur mit der Spalte Name (Brauch ich das noch?)
getRowTypes($type) assocarray( spaltenname⇒typ) Gibt die Datentypen der Tabelle zurück
getSelectedItem($type, $valuepairs ,$rows) $valuepairs:assocarray(spalte⇒wert), $rows:array( spalten) assocarray(spalte⇒wert) Liefert einen Eintrag eingeschränkt anhand der $valuepairs zurück. $rows begrenzt die zurückgegebenen Spalten.
getSelectedList($type, $valuepairs ,$order, $distinct) $valuepairs:assocarray(spalte⇒wert), $order:string,$distinct:bool array( assocarray( spalte⇒wert)) Gibt eine Liste mit Einträgen anhand der Einschränkung durch $valuepairs zurück. $order und $distinct funkionieren wie gehabt.
logger($level,$type,$message,$user, $session) $level:string, $type:string, $message:string nichts Logt in die Tabelle log. Für den Level gibt es Konstanten, $type sollte den aktuellen Kontext angeben (ajax,sql,artikel...). Die Optionalen Parameter sind für später und können (und werden!) sich ändern
setData($table,$values) ... ... Schreibt Daten in die Datatab, nicht so aufrufen!
setItem($type, $values) $values:asocarray(spalte⇒wert) true/false Updatet einen Eintrag Anhand der Werte. Auschlaggebend ist die Spalte id

TODO

Wünsche können hier angegeben werden :)

  • Der Optionale Parameter $order sollte noch Verpackt werden.
    • $foo = new QueryConstraint(); $foo→addOrder(’bar’)→addOrder(’bas’)→addFilter(LOWER,’31.02.2342’);
  • $order kann noch in mehreren Methoden eingebaut werden.
  • setData mit einem anderen Identifier als id
  • createItem sollte die erzeugte ID als Rückgabewert haben.

Fragen / Szenarios

Bitte sowas hier hin.
Beispiel: Ist die IP in der Tabelle

SELECT COUNT(*) FROM public.login_ips WHERE ip = $ip; // Im Code wird dabei auf Anzahl 1 geprüft.
DB::getSelectedItem('login_ips',array('ip'=>$ip));// Wenn nicht vorhanden wird null zurückgegeben, sonst ist die Anzahl 1
 
klassen/tools/dbutilities.txt · Zuletzt geändert: 2007/04/28 13:08 von patta
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki