php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 04-06-2009, 13:30
Fenja
 Registrierter Benutzer
Links : Onlinestatus : Fenja ist offline
Registriert seit: Jun 2009
Beiträge: 5
Fenja befindet sich auf einem aufstrebenden Ast
Standard Datenbankzugriff OOP

Hallo zusammen,
ich habe ein Verständnisproblem in Bezug auf die Objektorientierte Programmierung.

Wenn ich die Verbindung zur Datenbank aufbaue sollte es doch wie folgt aussehen (aus dem Buch PHP 5 und MySQL 5):

PHP-Code:
// -- Verbindung zur Datenbank aufbauen
  
class DbConnect {
              protected 
$mysqli;
              
// Konstruktor (Objekt dieser Klass erzeugen)
              
function __construct(){
                          require_once(
'_privat/libery.inc.php');
                          
$this->mysqli = @new mysqli($mysqlhost,$mysqluser,$mysqlpasswd,$mysqldb);
                          
                          
// test der Verbindung
                          
if(mysqli_connect_errno()){
                                     
printf("<p>Fehler: Keine Datenbankverbindung</p>"mysqli_connect_error());
                                     
$this->mysqli FALSE;
                                     exit();
                          }
              }
              
              
// Destruktor (Objekt löschen)
              
function __destruct() {
                          
this->close();
              }
              
              
// Verbindung/Objekt explizit löschen
              
function close(){
                          if(
$this->mysqli){
                                     
$this->mysqli->close();
                                     
$this->mysqli FALSE;
                          }
              }
  } 
Nun möchte ich beispielsweise für ein datenbankbasiertes Gästebuch die INSERT-, UPDATE- und DELETE-Anweisungen in einer separaten Datei gaestebuch.php in einer eigenen Klasse unterbringen. Wie nutze ich dann die oben gezeigte Datenbankverbindung?

Ich würde mich sehr freuen, wenn Ihr mir da weiter helfen könnt.
Mit Zitat antworten
  #2 (permalink)  
Alt 04-06-2009, 13:36
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

z.B.
PHP-Code:
$gb = new GaesteBuchModel($dbverbindung); 
Könnte für dich von interesse sein:
Registry Design Pattern
Dependency Injection Design Pattern
Singleton Design Pattern(weniger schön)
__________________
Wir werden alle sterben

Geändert von combie (04-06-2009 um 13:48 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 04-06-2009, 14:30
Fenja
 Registrierter Benutzer
Links : Onlinestatus : Fenja ist offline
Registriert seit: Jun 2009
Beiträge: 5
Fenja befindet sich auf einem aufstrebenden Ast
Standard

Hallo combie,
vielen Dank für die schnelle Antwort. Ich denke, es ist sinnvoll die Datenbank-Klasse als Singleton Pattern anzulegen da so nur eine Instanz einer Klasse erzeugt wird. Leider habe ich aber noch keine gutes Tutorial gefunden.

Schön wäre es ja, wenn da noch jemand eine gute und leicht verständliche Einstiegslektüre kennt ;-)
Mit Zitat antworten
  #4 (permalink)  
Alt 04-06-2009, 14:32
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Fenja Beitrag anzeigen
Ich denke, es ist sinnvoll die Datenbank-Klasse als Singleton Pattern anzulegen da so nur eine Instanz einer Klasse erzeugt wird.
Und was ist, wenn du mal zwei Datenbankverbindungen brauchst?
Mit Zitat antworten
  #5 (permalink)  
Alt 04-06-2009, 14:50
Fenja
 Registrierter Benutzer
Links : Onlinestatus : Fenja ist offline
Registriert seit: Jun 2009
Beiträge: 5
Fenja befindet sich auf einem aufstrebenden Ast
Standard

2 Datenbanken? Aber ich kann doch für ein System mit Beispielsweise Gästebuch, Forum, Benutzerverwaltung, etc. beliebig viele Tabellen anlegen. Wann braucht man denn 2 Datenbanken?
Mit Zitat antworten
  #6 (permalink)  
Alt 04-06-2009, 14:57
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Fenja Beitrag anzeigen
2 Datenbanken? Aber ich kann doch für ein System mit Beispielsweise Gästebuch, Forum, Benutzerverwaltung, etc. beliebig viele Tabellen anlegen. Wann braucht man denn 2 Datenbanken?
Aber wenn du eine zweite Datenbankverbindung einmal brauchen würdest, was machst du dann?
Mit Zitat antworten
  #7 (permalink)  
Alt 04-06-2009, 15:02
Fenja
 Registrierter Benutzer
Links : Onlinestatus : Fenja ist offline
Registriert seit: Jun 2009
Beiträge: 5
Fenja befindet sich auf einem aufstrebenden Ast
Standard

Wie Du sicher an meiner Antwort erkannt hast, darüber habe ich mir keine Gedanken gemacht. Ich kann mir nicht vorstellen, dass ich das je brauche...

Da Du diese Frage stellst, kennst Du Anwendungsfälle für die ich 2 Datenbanken benötige? Und weiterhin kennst Du eine bessere Lösung? Ich habe ja gelesen, das Singleton Design Pattern weniger schön ist, aber warum?
Mit Zitat antworten
  #8 (permalink)  
Alt 04-06-2009, 15:26
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Es is ein "platter" Ersatz für globale Variablen und bietet nur wenig Mehrwert.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #9 (permalink)  
Alt 05-06-2009, 11:48
Patrick_PQ
 Registrierter Benutzer
Links : Onlinestatus : Patrick_PQ ist offline
Registriert seit: Aug 2003
Beiträge: 480
Patrick_PQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Fenja,

da du auch nach Einstiegslektüre fragst: ich habe mir vor einige Zeit PHP Design Pattern besorgt - ist zwar nicht gerade preiswert, beschreibt den Einsatz von Entwurfsmustern mit PHP aber recht gut (meine Meinung).

Damit habe ich schnell verstanden wofür die gängigen Entwurfsmuster gut sind. Letztlich habe ich mich dann aber doch entschieden nicht alles selbst zu basteln sondern das Zend_Framework zu nutzten. Hier gibt es eigentlich alles was für eine typische Anwendung benötigt wird - auch eine Datenbankverbindung.
Mit Zitat antworten
  #10 (permalink)  
Alt 05-06-2009, 18:21
floorball92
 Registrierter Benutzer
Links : Onlinestatus : floorball92 ist offline
Registriert seit: Nov 2008
Ort: Germany->Hesse->Frankfurt
Beiträge: 15
floorball92 ist zur Zeit noch ein unbeschriebenes Blatt
floorball92 eine Nachricht über ICQ schicken floorball92 eine Nachricht über Yahoo! schicken
Standard

Kannst auch einfach in deiner Gästebuch Klasse die DB Connect Klasse erben und im Constructor ebenfalls den parent Constructor ausführen. MySQLi sorgt ja dafür, dass bei mehrmalige verwendung der DB Connect Klasse keine mehrfach Verbindung zur DB passiert.
Mit Zitat antworten
  #11 (permalink)  
Alt 09-06-2009, 11:08
Fenja
 Registrierter Benutzer
Links : Onlinestatus : Fenja ist offline
Registriert seit: Jun 2009
Beiträge: 5
Fenja befindet sich auf einem aufstrebenden Ast
Standard

Also über das Buch habe ich auch schon nachgedacht. Mir ist es generell einfach wichtig, wenn ich etwas programmiere dies so übersichtlich und strukturiert wie möglich zu machen.
Das Framwork ist sicher eine gute Sache, aber zunächst geht es mir darum, das Programmieren an sich zu beherrschen. Da die Basis größerer Anwendungen nun mal die Datenbankverbindung ist, wollte ich hier ansetzen. Leider gibt es ja bekanntlich viele Wege nach Rom, aber ich würde gern den sichersten, schnellsten und übersichtlichsten gehen.

Ich werde mir das Buch mal genauer ansehen und ein wenig mit den Möglichkeiten experimentieren. Sollten weitere Fragen auftauchen, werde ich mich hier noch ein mal melden.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datenbankzugriff via BBCode luckylooser11 PHP Developer Forum 2 12-08-2006 22:24
phpmailer im body datenbankzugriff stilleswasser PHP Developer Forum 3 14-03-2006 17:16
Datenbankzugriff Tag gesteuert....? reichr PHP Developer Forum 4 19-11-2003 13:07
Problem Datenbankzugriff mit PHP Sonne SQL / Datenbanken 23 02-09-2002 09:47
Datenbankzugriff pseo SQL / Datenbanken 2 30-08-2002 18:57

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:18 Uhr.