Ö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 | |
Definiert in Zeile 33 der Datei db.class.php.
| DB::affectedRows | ( | ) |
Ermittelt die Anzahl der betroffenen Zeilen nach einer Datebank-Anfrage.
Definiert in Zeile 169 der Datei db.class.php.
| DB::connect | ( | ) |
Verbindung zur Datenbank aufbauen.
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.
| Array | $conf |
Definiert in Zeile 78 der Datei db.class.php.
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.
| String | $query |
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.
| String | $query | |
| Boolean | $force_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.
| String | $query |
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.
| String | $query |
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.
| String | $query |
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.
| String | $query |
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 }
| DB::$available |
Definiert in Zeile 54 der Datei db.class.php.
| DB::$client |
Definiert in Zeile 68 der Datei db.class.php.
| DB::$conf |
| DB::$error |
Definiert in Zeile 61 der Datei db.class.php.
| DB::$id |
Definiert in Zeile 40 der Datei db.class.php.
1.5.8