windhund: OOP: Verständnisfragen Klassen, Methoden

hallo
ich bin dabei OOP mit PHP zu lernen. ich habe bereits mit großem Erfolg verschiedenste Klassen benutzt,zB. SMARTY oder verschiedenstes von PEAR. Nun aber möchte ich eigene Klassen schreiben. zB. DB Afrageroutinen, die ich immer wieder benutze möchte ich in ne Klasse schreiben:

class DBClass  
{  
// DB zugang  
require_once('zugangsdaten.php');// die DB Parameter Host, User, Passwort  
  
// private $tablename = "mytable";  ?? korrekt?  
  
 function selectrow($sql) {  
  // DB aufruf  
  ...  
  return $row; // einfaches Array bei Fehlerfrei  
                ..  
  return false; // bei DB Fehler  
 }  
}

in dem Beispiel soll selectrow einen einfachen SELECT auf eine Reihe durchführen. als Rückgabe soll die Methode die Ergebn.reihe als einfaches Array ausgeben, im Feherfall aber false als Fehlermeldung:

$DBselect = new  DBClassMB;
$sql= "SQL statement..";
$myrow =  $DBselect->selectrow($sql); // ein einfaches assoz. Array
if ($myrow == false) // Fehlermeldung
else ...// $myrow ist

ist das korrekt so? wie kann ich überhaupt den Fehlerfall, den mySQLi senden, abfangen? wie def. ich korrekterweise den Tabellennamen $tablename innerhalb der klasse? (oder soll ich sie als parameter mitübergeben besser?)

und wie mache ich das wenn ich ein mehrreihiges Array, einen Ergebnisset zurückbekommen will? die Methode in der Klasse lautet etwa so:

function selectrows($sql) {  
// DB aufruf  
  
  return $row; // mehrreihiges Array bei Fehlerfrei  
  ....  
  return false; // bei DB Fehler  
}  

ich weiss, das Forum ist eig. für "einfach gestrickte" Fragen, vl. könnt ihr mir dennoch gute Quellen dafür benennen wo ich mich vertiefen kann ?!

Danke, Gruß

  1. Hallo,

    ich bin dabei OOP mit PHP zu lernen. ich habe bereits mit großem Erfolg verschiedenste Klassen benutzt,zB. SMARTY oder verschiedenstes von PEAR. Nun aber möchte ich eigene Klassen schreiben. zB. DB Afrageroutinen, die ich immer wieder benutze möchte ich in ne Klasse schreiben:

    class DBClass

    {
    // DB zugang
    require_once('zugangsdaten.php');// die DB Parameter Host, User, Passwort

    das ist keine gute Idee. Innerhalb von Klassen sollte man nicht andere Ressourcen einbinden.

    Für die Verbindung zur Datenbank bietet sich das Singleton-Muster an, siehe z.B. diverse Beiträge von dedlfix im Forumsarchiv:

    [link:/archiv/2007/3/t147941/#m959523]
    [link:/archiv/2008/2/t166741/#m1087551]

    und wie mache ich das wenn ich ein mehrreihiges Array, einen Ergebnisset zurückbekommen will? die Methode in der Klasse lautet etwa so:

    ich sehe wenig Grund, den Spezialfall: die Daten bestehen aus einem Datensatz eigens zu behandeln; wenn überhaupt wäre meiner Meinung nach eher der Spezialfall Deines Spezialfalles eine Betrachtung wert: die Rückgabe ist ein Skalar, d.h. die Abfrage liefert genau einen Datensatz mit genau einer Spalte wie z.B. die Abfrage

    [code lang=sql]SELECT COUNT(*) FROM tabelle

      
      
    Freundliche Grüße  
      
    Vinzenz