DB Klassenreferenz

Aufstellung aller Elemente

Öffentliche Methoden

 DB ($conf)
 connect ()
 query ($query)
 affectedRows ()
getOne ($query)
getRow ($query)
getCol ($query)
getAssoc ($query, $force_array=false)
getAll ($query)

Öffentliche Attribute

 $id
 $conf
 $available
 $error
 $client


Ausführliche Beschreibung

Definiert in Zeile 33 der Datei db.class.php.


Dokumentation der Elementfunktionen

DB::affectedRows (  ) 

Ermittelt die Anzahl der betroffenen Zeilen nach einer Datebank-Anfrage.

Rückgabe:
unknown

Definiert in Zeile 169 der Datei db.class.php.

00170      {
00171           return $this->client->affectedRows( $query );
00172      }

DB::connect (  ) 

Verbindung zur Datenbank aufbauen.

Rückgabe:
Status

Definiert in Zeile 94 der Datei db.class.php.

Benutzt Logger::debug().

Wird benutzt von DB().

00095      {
00096           // Ausführen des Systemkommandos.
00097           if   ( !empty($this->conf['cmd']))
00098           {
00099                $ausgabe = array();
00100                $rc      = false;
00101 
00102                Logger::debug("Database command executing: ".$this->conf['cmd']);
00103                exec( $this->conf['cmd'],$ausgabe,$rc );
00104                
00105                foreach( $ausgabe as $zeile )
00106                     Logger::debug("Database command output: ".$zeile);
00107                
00108                if   ( $rc != 0 )
00109                {
00110                     $this->error     = 'Command failed: '.implode("",$ausgabe);
00111                     $this->available = false; 
00112                     return false;
00113                }
00114           }
00115           
00116           $type = $this->conf['type'];
00117           $classname = 'db_'.$type;
00118           
00119           $this->client = & new $classname;
00120 
00121           $ok = $this->client->connect( $this->conf );
00122           
00123           if   ( ! $ok )
00124           {
00125                $this->error     = $this->client->error;
00126                $this->available = false;
00127                return false; 
00128 //             if   ( empty($this->error) )
00129 //                  $this->error = 'Error while connecting to database.';
00130           }
00131 
00132           $this->available = true;
00133           return true;
00134      }

DB::DB ( conf  ) 

Kontruktor. Erwartet die Datenbank-Konfiguration als Parameter.

Parameter:
Array $conf
Rückgabe:
Status

Definiert in Zeile 78 der Datei db.class.php.

Benutzt $conf und connect().

00079      {
00080           $this->available = false;
00081           $this->conf      = $conf;
00082           
00083           $this->connect();
00084           
00085           return $this->available;
00086      }

& DB::getAll ( query  ) 

Ermittelt alle Datenbankergebniszeilen.

Parameter:
String $query
Rückgabe:
Array

Definiert in Zeile 308 der Datei db.class.php.

Benutzt query().

00309      {
00310           $res = $this->query( $query );
00311 
00312           $results = array();
00313           $numRows = $res->numRows();
00314 
00315           for( $i=0; $i<$numRows; $i++ )
00316           {
00317                $row = $res->fetchRow($i);
00318                $results[] = $row;
00319           }
00320 
00321           $res->free();
00322 
00323           return $results;
00324      }

& DB::getAssoc ( query,
force_array = false 
)

Ermittelt ein assoziatives Array aus der Datenbank.

Parameter:
String $query
Boolean $force_array
Rückgabe:
Array

Definiert in Zeile 260 der Datei db.class.php.

Benutzt query().

00261      {
00262           $res = $this->query($query);
00263 
00264           $numCols = $res->numCols();
00265           $numRows = $res->numRows();
00266 
00267           $results = array();
00268 
00269           if ( $numCols > 2 || $force_array )
00270           {
00271                for( $i=0; $i<$numRows; $i++ )
00272                {
00273                     $row = $res->fetchRow($i);
00274 
00275                     $keys = array_keys($row);
00276                     $key1 = $keys[0];
00277 
00278                     unset( $row[$key1] );
00279                     $results[ $row[$key1] ] = $row;
00280                }
00281           }
00282           else
00283           {
00284                for( $i=0; $i<$numRows; $i++ )
00285                {
00286                     $row = $res->fetchRow($i);
00287 
00288                     $keys = array_keys($row);
00289                     $key1 = $keys[0];
00290                     $key2 = $keys[1];
00291 
00292                     $results[ $row[$key1] ] = $row[$key2];
00293                }
00294           }
00295 
00296           $res->free();
00297 
00298           return $results;
00299      }

& DB::getCol ( query  ) 

Ermittelt eine (die 1.) Spalte aus dem Datenbankergebnis.

Parameter:
String $query
Rückgabe:
Array

Definiert in Zeile 231 der Datei db.class.php.

Benutzt query().

00232      {
00233           $res = $this->query( $query );
00234           
00235           $ret = array();
00236 
00237           $numRows = $res->numRows();
00238           
00239           for( $i=0; $i<$numRows; $i++ )
00240           {
00241                $row = $res->fetchRow($i);
00242                
00243                $keys = array_keys($row);
00244                $ret[] = $row[ $keys[0] ];
00245           }
00246 
00247           $res->free();
00248 
00249           return $ret;
00250      }

& DB::getOne ( query  ) 

Ermittelt genau 1 Datenbankergebnis aus einer SQL-Anfrage. Falls es mehrere Treffer gibt, wird die 1. Spalte aus der 1. Zeile genommen.

Parameter:
String $query
Rückgabe:
String

Definiert in Zeile 182 der Datei db.class.php.

Benutzt query().

00183      {
00184           $res = $this->query($query);
00185 
00186           if   ( $res->numRows() > 0 )
00187           {
00188                $row = $res->fetchRow( 0 );
00189                $res->free();
00190      
00191                $keys = array_keys($row);
00192      
00193                return $row[ $keys[0] ];
00194           }
00195           else
00196           {
00197                $res->free();
00198                $leer = '';
00199                return $leer;
00200           }
00201      }

& DB::getRow ( query  ) 

Ermittelt eine Zeile aus der Datenbank.

Parameter:
String $query
Rückgabe:
Array

Definiert in Zeile 210 der Datei db.class.php.

Benutzt query().

00211      {
00212           $res = $this->query($query);
00213 
00214           if   ( $res->numRows() > 0 )
00215                $row = $res->fetchRow( 0 );
00216           else
00217                $row = array();
00218 
00219           $res->free();
00220 
00221           return $row;
00222      }

DB::query ( query  ) 

Ausführen einer Datenbankanfrage.

Parameter:
String $query
Rückgabe:
Object (Result)

Definiert in Zeile 143 der Datei db.class.php.

Benutzt Logger::trace() und Logger::warn().

Wird benutzt von getAll(), getAssoc(), getCol(), getOne() und getRow().

00144      {
00145           Logger::trace('DB query: '.substr($query,0,45).'...');
00146 
00147           $result = $this->client->query($query);
00148           
00149           if   ( $result === FALSE )
00150           {
00151                $this->error = $this->client->error;
00152                
00153                if   ( true )
00154                {
00155                     Logger::warn('Database error: '.$this->error);
00156                     die('Database Error:<pre style="color:red">'.$this->error.'</pre>');
00157                }
00158           }
00159                
00160           return new DB_result( $this->client,$result );
00161      }


Dokumentation der Datenelemente

DB::$available

Definiert in Zeile 54 der Datei db.class.php.

DB::$client

Definiert in Zeile 68 der Datei db.class.php.

DB::$conf

Definiert in Zeile 47 der Datei db.class.php.

Wird benutzt von DB().

DB::$error

Definiert in Zeile 61 der Datei db.class.php.

DB::$id

Definiert in Zeile 40 der Datei db.class.php.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:

Erzeugt am Thu May 14 00:55:49 2009 für OpenRat von  doxygen 1.5.8