Nachdem wir nun alle notwendigen Vorbereitungen erledigt haben können wir uns mit der Datenbank Klasse beschäftigen. Als erstes erstellen wir eine neue Datei mit den Namen database.php und speichern diese in den von uns bereits erstellten Unterordner includes ab.
Wir sollten uns erst überlegen was die Klasse alles können soll:
1. Verbindung zum Datenbank Server herstellen
2. Datenbank auswählen
3. Abfrage an DB-Server schicken
4. Ergebnisse ausgeben/bearbeiten etc.
5. Verbindung zum Server schließen
6. sonstige Methoden (Funktionen)
Das folgende Listing ist eine erste Version unserer database class, welche wir aber noch weiter verbessern werden um näher an das Modell der OOP heranzukommen.
1<?php
2 3require_once("config.php");
4 5 class MySqlDatabase {
6 7 private $connection;
8 9 10 11 function __construct() {
12$this->open_connection();
13 14 }
15 16 public function open_connection() {
17$this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
18 if (!$this->connection) {
19 die("Datenbankverbindung konnte nicht hergestellt werden: " . mysql_error());
20 }
21 22 }
23 public function select_db(DB_NAME, $this->connection);
24$db_select = mysql_select_db(DB_NAME, $this->connection);
25 if(!db_select) {
26 die("Datenbankauswahl scheiterte: " . mysql_error());
27 }
28 }
29 30 31 public function close_Connection() {
32 if(isset($this->connection)) {
33mysql_close($this->connection);
34 unset($this->connection);
35 }
36 }
37 38 public function query($sql) {
39$this->last_query= $sql;
40$result = mysql_query($sql, $this->connection);
41$this->confirm_query($result);
42 return $result;
43 }
44 45 private function confirm_query($result) {
46 if(!$result) {
47$output = "Database query failed: " . mysql_error() . "<br /><br />";
48$output .= "Last Sql query: " . $this->last_query;
49 die( $output );
50 }
51 }
52 53 public function escape_value( $value ) {
54 55 if( $this->new_enough_php ) {
56 if( $this->magic_quotes_active ) { $value = stripslashes($value); }
57$value = mysql_real_escape_string( $value );
58 } else {
59 if (!$this->magic_quotes_active) {$value = addslashes( $value ); }
60 }
61 return $value;
62 }
63 64 public function fetch_array($result_set) {
65 return mysql_fetch_array($result_set);
66 }
67 68 public function num_rows($result_set) {
69 return mysql_num_rows($result_set);
70 }
71 72 public function insert_id() {
73 return mysql_insert_id($this->connection);
74 }
75 76 public function affected_rows() {
77 return mysql_affected_rows($this->connection);
78 }
79 }
80$database = new MySqlDatabase();
81 82?>
Warum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.