php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.02.2012, 12:10  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von magnetus Beitrag anzeigen
Hallo nochmal,

Vielen Dank für die Mühe beim Lösen der Knoten in meinem Kopf...

...wir kommen der Sachen aber näher.



Und genau diese Zuweisung bereitet mir die Probleme:

(1) das "Datenbank-Objekt" ist im Idealfall die PDO-Soße von oben, richtig?
(1a) ich brauche also keine "eigenen" Attribute mehr in der Klasse?!
(1b) bearbeiten die Methoden der Klasse dann die Attrbute des zugewiesenen "Datenbank-Objekts"?
(1c) woher werden dann, z.B. beim ändern eines Datensatzes, die neuen Variablen an die Methode übergeben? - aus dem "Datenbank-Objekt"?

(2) bedeutet "Singleton", dass dieses Objekt so ähnlich wie $_Session-Variablen überall verfügbar ist (z.b. beim Navigieren)? - wo finde ich dazu eine Erläuterung?
NEIN - es ist ein grober Design-Fehler, dieses Singleton als Ersatz für Global zu missbrauchen. Genau deshalb weist du den eigentlichen Datenobjekten beim Erstellen das Datenbank-Objekt zu (also einen Verweis darauf) - damit kennen letztlich alle erzeugten Objekte dein Datenbank-Objekt.
Beispielsweise kannst du das etwa wie folgt lösen
PHP-Code:
class user {
  private 
$db;
  public 
__construct($db) {
     
$this->db=$db;
  }
 ....

- es kann aber auch Sinn machen, dass dein Constructor die Daten zum Beispiel aus einem EingabeFormular bekommt, in einem Funktionsaufruf dann das Datenbank-Objekt bekommt ...

PHP-Code:
$user=new($username,$name,$vorname,$passhash,...);
$user->setDB($pdo_db);
$user->saveUser(); 
dies liefert dir auch gleich Hinweise für deine 1ten Fragen

natürlich benötigt deine Datenobjekte private Membervariablen = Attribute/Properties, um die Daten zwischen zu speichern, bevor - nach einer obligatorischen Validierung der Datensatz geschrieben werden kann. Ebenso wichtig sind diese privaten Attribute als Zwischenspeicher, etwa wenn du den Datensatz ändern musst und dabei Änderungen auch noch dauerhaft protokolliert werden müssen. (Datensatz holen, neue Daten aus Eingabeformular per Funktionsaufruf übergeben, dann validieren und Änderungsprotokoll erzeugen, anschließend speichern

Zitat:
(3) Ist das "Datenbank-Objekt" dann für für
  • die ganze DB,
  • eine Tabelle (z.B. alle User) oder
  • einen Tabelleneintrag (z.B. den eizelnen User)
zuständig? oder gibt es jeweils ein eigenes "Datenbank-Objekt"?

Ich bin durchaus gewillt, The F***ing Manual zu lesen, wenn mir jemand die Kapitel nennt

Danke und Gruß,
magnetus
3) - das Datenbank-Objekt ist für die gesamte Datenbank da, es stellt grundsätzlich die aus der mysql-Erweiterung bekannte Datenbank-Verbindung und ein paar Funktionen zum Zugriff bereit. Unter anderem die äußerst nützliche Funktion ein "prepared Statement" zu erzeugen, das du nunmehr für Abfragen benutzen solltest

die Arbeit auf den Datensätzen übernehmen ja diese Datenobjekte (User = ein Eintrag aus der User-Tabelle) ..
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.02.2012, 12:17  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von magnetus Beitrag anzeigen
(1) das "Datenbank-Objekt" ist im Idealfall die PDO-Soße von oben, richtig?
(1a) ich brauche also keine "eigenen" Attribute mehr in der Klasse?!
(1b) bearbeiten die Methoden der Klasse dann die Attrbute des zugewiesenen "Datenbank-Objekts"?
(1c) woher werden dann, z.B. beim ändern eines Datensatzes, die neuen Variablen an die Methode übergeben? - aus dem "Datenbank-Objekt"?
1)
PHP-Code:
$pdo = new PDO(...); 
Hier ist $pdo das Datenbank-Objekt. Das ist deine Schnittstelle zur Datenbank, nicht mehr und nicht weniger!
1a und 1b ist dementsprechend falsch und um 1c musst du dich auch selber kümmern

In Active Record:
PHP-Code:
$student->name 'neuer Name';
$student->save(); 
save() sendet nun mit Hilfe von PDO ein UPDATE bzw. INSERT.
fab ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Checkboxes nach editieren wieder in die Datenbank abspeichern Falki14 PHP Einsteiger 15 15.01.2012 21:39
[Erledigt] Datensätze von einer MySQL in eine andere MySQL Datenbank abgleichen Marvin75 Datenbanken 7 10.06.2011 18:00
Mehrere Querys klappen in PhpMyAdmin aber nicht in PHP djscaleo Datenbanken 36 15.05.2011 02:00
[Mitmachquiz] Gästebuch mit beliebiger Datenbank Asipak Off-Topic Diskussionen 69 02.03.2011 11:03
[Erledigt] Datensatz von Datenbank A nach Datenbank B kopieren GruenerQuark Datenbanken 2 17.01.2011 17:19
Variablenname aus Datenbank auswerten Eratech PHP Tipps 2010 6 04.05.2010 18:09
Allgemein Werte in Datenbank updaten chunky PHP Tipps 2010 1 08.04.2010 22:35
Datenbank richtig aufgebaut? bageleudi Datenbanken 2 31.03.2010 21:01
schribt nichts in die datenbank Cheesy92 PHP Tipps 2006 9 27.10.2006 14:03
String in Datenbank finden Pimbolie1979 Datenbanken 11 13.10.2006 15:37
Sql Datenbank durchsuchen und vergleichen Teambyte PHP Tipps 2006 5 14.09.2006 11:11
Mehrere Anwendungen eine Datenbank... Datenbanken 5 15.08.2005 11:22
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
INSERT in die Datenbank PHP Tipps 2004-2 4 13.12.2004 19:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php quiz objektorientiert, datenbankobjekt in variable ablegen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum