OOP Programmierung - Hilfe benötigt

Coach

Aktives Mitglied
Hallo,

ich wollte heute mit dem Thema OOP in PHP beginnen. Dazu habe ich mich an ein Skript von phpclasses.org gewagt um nicht von Grund auf neu zu beginnen:

Der Link zur Klasse

Das ist eine Mysqli Datenbank Klasse mit deren Hilfe ich die Verbindung zur Datenbank herstellen will.

Ich habe noch nichts mit OOP zu tun, von daher nun mein erster Versuch:
QUOTE
include_once 'classes/class.MysqliDatabase.php';
$db = new MysqliDatabase("database=***; username=***; password=***;");
$q = "SELECT USER_NAME FROM system_user";
$db->query_one($q);



So weit scheint das alles mal zu klappen, ich erhalte keinen Fehler. Aber wie ist es nun möglich, dies aus der Query enthaltenen Werte auszulesen?
 
Ohne mir jetzt die Klasse angeschaut zu haben, eventuell Folgendes:

$q = "SELECT USER_NAME FROM system_user";
$result = $db->query_one($q);

$result sollte als Array zurückgegeben werden. Schau mal was die Ausgabe print_r($result); liefert.

Oder einfach mal statt query_one() nur query() probieren.
 
Bei $result = $db->query_one($q): liefert print_r($result); ein NULL zurück
Bei $result = $db->query($q): liefert print_r($result); folgendes:

object(MysqliResult)#3 (2) { ["Result:private"]=> object(mysqli_result)#2 (0) { } ["FieldsInfo:private"]=> array(1) { [0]=> object(stdClass)#4 (11) { ["name"]=> string(9) "USER_NAME" ["orgname"]=> string(9) "USER_NAME" ["table"]=> string(16) "system_user" ["orgtable"]=> string(16) "system_user" ["def"]=> string(0) "" ["max_length"]=> int(0) ["length"]=> int(32) ["charsetnr"]=> int(8) ["flags"]=> int(1) ["type"]=> int(253) ["decimals"]=> int(0) } } }
 
Ja du erhälst nun deine Daten als Objekte zurück und kannst diese wie bei anderweitiger OOP ansprechen, hab mir deine Klasse nicht angeschaut, doch es sollte in etwa so aussehen:

foreach($result as $r){
echo $r->getName();

//oder

echo $r->name;

}

Ich würde allerdings nicht mit Datenbank Sachen in die OOP einsteigen, da kann man schon viel falsch machen und sieht auch viel falsches im Netz an Klassen.

Da gibt es viel bessere Einstiegsbeispiele, z.B. einen einfachen Währungsumrechner, da kannst du dir dann auch gleich mal Vererbung anschauen, um das weiter auszuführen brauchst du für einen Währungsumrechner:

Eine Mutter Klasse die die Währung ausgibt mit einer Basis Währung( 1 € )
Verschiedene Währungsklassen die jeweils einen Umrechner beinhalten, z.B. 1€ -> x,xx USD

Dann versuchst du die beiden zu kombinieren in dem du z.B. die Mutterklasse aufrufst und ihr verschiedene Kindklassen zuweist und dann über einen zusätzlichen Parameter dir eine Umrechnung ausgeben lässt.

Ich denke das ist ein bisschen leichter nachzuvollziehen als sich in irgendwelche großen Datenbank Abstraktionsschichten zu werfen...
 
Zurück
Oben