Benutzer-Werkzeuge

Webseiten-Werkzeuge


datenbank_oeffnen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Both sides previous revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
datenbank_oeffnen [2015/12/19 15:56]
127.0.0.1 Externe Bearbeitung
datenbank_oeffnen [2016/07/08 00:00] (aktuell)
Zeile 1: Zeile 1:
 ===== Datenbank mit PDO öffnen ===== ===== Datenbank mit PDO öffnen =====
  
-Zum Öffnen ​einer Datenbank ​wird ein neues Objekt der Klasse "​PDO" ​erstellt.+Für die Erstellung ​einer Datenbankverbindung ​wird generell nur ein neues Objekt der Klasse "​PDO" ​erzeugtBeispiel:
  
- define( 'DB_HOST',​ '​127.0.0.1'​ ); +<code php> 
- define( '​DB_NAME', 'DB_Name'​ ); +$DB = new PDO( 'mysql:​host=localhost;dbname=databasename', 'root', ''​ ); 
- define( '​DB_USER', 'DB_User' ); +</​code>​
- define( '​DB_PASS',​ '​DB_Password'​ );+
  
-===== Verbindung mit einer MySQL-Datenbank ​herstellen: =====+Nach Möglichkeit sollte im Projekt nur eine Datenbankverbindung erstellt werden die von allen Funktionen und Klassen verwendet werden kann. Die Erstellung mehrerer Verbindungen zur gleichen ​Datenbank ​bedeuten unnötige Sicherheitsrisiken und Performancenachteile.
  
-<​code ​sql+Die Erstellung der Datenbankverbindung in einer PHP-Klasse, die durch andere Klassen (wie z. B. Models mit Datenbankzugriff) mit extended erweitert werden soll ist hierfür ungeeignet, da hier für jede erstellte Instanz automatisch eine eigene Datenbankverbindung erstellt wird. 
-try + 
- $DB new PDO( "mysql:host=" . DB_HOST . ";dbname=" . DB_NAMEDB_USERDB_PASS ​); +Die geeignetste Methode ist die Erstellung einer PHP-Klasse, die ein PDO-Objekt erstellt und dieses per globale Variable in allen Scripten zur Verfügung stellt. Diese Variable kann dann in allen Klassen, die einen Zugriff auf die Datenbank benötigen, im Constructor eingebunden werden. Idealerweise wird die Methode, also das Öffnen der Datenbankverbindung,​ in einer globalen Konfigurationsdatei aufgerufen, welche in jede Projektseite eingebunden wird. 
-+ 
-catch( PDOException $e ) { +<​code ​php
- exit('​Unable to connect Database.'​);​+class Database 
 +
 +    /** 
 +     ​* ​DB constructor. 
 +     */ 
 +     
 +    public static function openDB() 
 +    { 
 +        try 
 +        { 
 +            return ​new \PDO( 'mysql:host=localhost;dbname=databasename'​'​root'​'' ​); 
 +        
 +        catch( PDOException $e ) 
 +        ​
 +            exit( '​Unable to connect Database. ​Error-Message: ​' ​. $e->​getMessage() ​); 
 +        } 
 +    }
 } }
 +
 +$DB = Database::​openDB();​ // initiale database as global variable
 +
 +class User
 +
 +    private $DB;
 +
 +    public function __construct()
 +    {
 +        global $DB;
 +        $this->​DB = $DB;
 +    }
 </​code>​ </​code>​
 +
 +Jetzt repräsentiert die Variable $this->​DB die geöffnete Datenbankverbindung und steht in der gesamten PHP-Klasse "​User"​ zur Verfügung.
  
 ===== Verbindung mit einer PostgreSQL-Datenbank herstellen: ===== ===== Verbindung mit einer PostgreSQL-Datenbank herstellen: =====
datenbank_oeffnen.1450536979.txt.gz · Zuletzt geändert: 2016/07/08 00:00 (Externe Bearbeitung)