@xxoes: also der Unterschied zwischen Funktionen und Klassen liegt einfach darin, daß Du hier alle Funktionen, die Du jemals mit Deiner DB anstellen willst in eine einzige Klasse packst. Klaro kannst Du auch über Funktionen machen, aber dann mußt Du einen Haufen an Parametern mit Dir rumschleppen. z.B. die erste Funktion macht die Connection auf -> ConnectId merken, dann führt man ein Select aus -> resultId merken, dann holt man sich die Records -> RecordSet merken. Das alles macht die Klasse über ihre Klassenvariablen. Du brauchst nur noch zu sagen was Du brauchst, die Zustände und Zwischenvariablen werden automatisch gespeichert.
Und durch den Austausch der Klasse db_zugriff kannst Du auf einen Schlag von mySQL weg zu ODBC gehen. Im Funktionsfall hättest Du entweder direkte mysql_* Funktionen benutzt, da wo Du sie gebraucht hast, oder Du hättest Dir Zwischenfunktionen gebastelt. Im ersten Fall müßtest Du Search & Replace im gesamten Projekt machen, im zweiten würdest Du die Funktionen umschreiben. Aber wer weiß vielleicht sind hier plötzlich andere Rückgabewerte, die sich trotzdem im normalen Programmcode auswirken. Und schwups mußt Du doch alles durchschauen. Bei der Klasse mußt Du lediglich dafür sorgen, daß die "Schnittstelle" nach außen, d.h. für den Aufrufer identisch bleibt. Wie das dann intern verwurstet wird ist allen Beteiligten völlig egal.
@Crying Man: also das var kennzeichnet Variablen (ach neee...

). Innerhalb von Klassen kannst Du eigene Variablen definieren, die zur Speicherung von internen Zuständen oder als Schnittstelle nach außen dienen können. Im normalen Programmtext ist es nicht notwendig Variablen vor ihrer Benutzung zu definieren, aber der Klasse muß man schon sagen, welche Variablen zu ihr gehören und welche sie nur flüchtig (innerhalb von Klassenmethoden) kennt.
Prinzipiell ist die Klasse ja schon mal ganz nett, aber wenn es die einzigste Klasse ist, dann wurde OOP auch nur halbherzig eingesetzt. Weil jetzt könnte man weitergehen und z.B. für jede Tabelle eine eigene Klasse anlegen, mit Klassenvariablen, die den Tabellenfeldern entsprechen und Zugriffsfunktionen, um einen neuen Datensatz dieser Tabelle anzulegen, zu ändern oder zu löschen. Oder eine Select Funktion, die als Parameter den eindeutigen Schlüssel dieser Tabelle reinbekommt und dann die Klassenvariablen entsprechend auf die Werte aus der DB setzt.
Dann muß ich mich bei einem Select nur noch darum kümmern: welche Tabelle brauche ich -> entsprechende Klasse instanzieren ($tab = new CTableXXXX) und was ist der Primärschlüssel ($tab->selectID ($ID)) beides ist im Kontext meist sowieso klar. Auch bei einem Insert sind nur die wirklichen einzufügenden Parameter notwendig. Ich muß nicht sehen, daß ich einen Tabellennamen reingebe oder wo ich die Verbindung zur DB aufbauen muß, oder wie die Daten letztendlich in die DB kommen.
So hoffe, das hilft ein wenig
Ciao,
Albu