PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL class


oRigin
01.05.2007, 17:53:02
Hallo!

Ich bin eher auch noch ein Anfänger in Sachen PHP und OOP, aber trotzdem hab ich mich mal hin gesetz und habe eine Klasse für MySQL User programmiert.
Immoment bin ich bei V1.2, also nich sehr weit, aber die elementaren Sachen sind schon verfügbar.

Erst einmal der link, wo man sich die Klasse runterladen kann:

Klasse downloaden (http://share.gulli.com/files/961194006/mysql.class.php.html)

Also, zur Funktionsweise der Klasse:

- DB_Read('Tabelle','Spalte','Wert')
1. de Tabelel aus der man lesen will
2 + 3. Die Spalte aus der gelesen werden soll mit dem dazugehörigen Wert

- DB_Insert('Tabelle','Spalte','Wert')
das gleiche wie oben, nur dass das man etwas einfügt ;-)

- DB_Update('Tabelle','Set_Spalte','Set_Wert','Cond_Spalte','Cond_Wert')
1. immer noch die Tabelle
2+3. diesmal die Spalten die man updaten will also neu "setten"
3+4. die bedigungen ( spalten + werte ), damit man weiß welche Zeile man updaten will


es werden auch explizit selbstgenerierte Fehlermeldungen ausgegeben!
rein technisch werden überprüft:
- Ob die angegebene Tabelle existiert
- Ob die angegbenen Felder existieren
- Ob Spalten und Werte sich decken
- Ob Werte in den Parametern stehen
- etc.

erst einmal die wichtigsten

Falls jemand lust hat, kann er sie bitte mal ausprobieren, weil ich mir nicht sicher bin ob sie bugfrei ist.
Also wenn es geht, bitte mir Fehler und/oder Verbesserungsvorschläge und/oder Erweiterungsvorschläge melden. Danke!
wenn die Klasse einwandfrei funktioniert stelle ich sie SelfPHP natürlich selbstverständlich zur Verfügung :- )

Gruß oRigin

PS: um die eigenen DB - Werte ( also User, Pass, Database etc.) zu ändern bitte Klasse öffnen und die ersten 4 variablen ändern!
Diese sind immoment nur auf einen Apache - Server abgestimmt.

Opendix
01.05.2007, 20:10:33
Allgemein Verbesserungsvorschläge:

1. Überflüssigen Code kannst du die sparen
z.B. wird der Konstruktor nicht benötigt


// Konstruktor
public function MySQL()
{
}


2. Code-Kommentare
Allgemein dokumentiere ich meine Klassen immer mit PHPDoc-Kommentaren.. sprich sowas:


/**
* Beschreibung der Klasse
*
* @author Stefan Schöb
* @package OpendixCMS
* @version 1.0
* @copyright Copyright © 2006, Stefan Schöb
* @since 1.0
*/
class Blaaa
{
//...
}

Das ganze zählt natürlich auch für Funktionen und Klassenvariabeln auch wenn diese als private deklariert sind!

3. Exceptions verwenden
Ist vielleicht jetzt meine Ansicht, aber wenn ich solche Klassen programmiere, die ja nur was für mein Script machen sollen, will ich nicht, dass bei einem Fehler das Script stehen bleibt... das erzwingst du aber durch z.B. folgende Zeile:

die("<br><b>Verbindung zum MySQL-Server konnte nicht hergestellt werden!</b>");


besser wäre hier aus meiner Sicht:

throw new Exception('Verbindung konnte nicht hergestellt werden');


Dann kann man im Script, wo man diese Klasse verwendet selbst auf die Fehler eingehen!

4. Benennung der Parameter
Irgendwoe hab ich mal gelesen, dass die globalen Variabeln wie folgt benennt werden sollten:
$_BLABLA

Ist natürlich dir überlassen, aber ich finde deine Parameterbenennung irgendwie eher verwirrend (aber geschmackssache *g*)

5. Strings

hmm ich find den Post hier im Forum nicht mehr, aber irgendwo wird genau beschrieben, wann man " und wann ' verwenden sollte...


$_DBCond = "";
$_DBSet = "";
$_DBError = "";


Dafür müsste man auf jeden Fall ' anstatt " verwenden (der Geschwindigkeit zu liebe :))

6. Allgemein Konstruktoren
.. werden ab PHP 5 so gemacht:



function __construct()
{
//bla bla :)
}



So öhm ja.. sonst fällt mir gerade nichts ein, zum Testen hab ich grad keine Zeit, und ob das alles sinvoll ist weis ich auch nicht, aber vielleicht helfen dir ja diese Tipps bei deinem weiteren Lernvorgang weiter ;)

oRigin
16.05.2007, 14:21:27
Hallo


/**
* Beschreibung der Klasse
*
* @author Stefan Schöb
* @package OpendixCMS
* @version 1.0
* @copyright Copyright &copy; 2006, Stefan Schöb
* @since 1.0
*/


Gibt es zu dieser Beschriftung ein richtiges System? Sprich eine Internetseite wo steht wie man das am besten macht?
was macht eigentlich das @?

Was ist eigentlich besser?
'throw new Exeption' oder dass man eine Klasse programmiert, die die Error aufnimmt und ausgibt?

Und wenn man eine Ausnahme macht, bleibt das Script doch auch stehen bzw. es wird abgebrochen?
Ist da ein unterschied?

Hat jemand von euch vllt. eine Seite, wo man fortgeschrittenes PHP lernen kann?
Die Grundlagen kann ich ja eigentlich, aber mich dürstet nach mehr wissen
--> eigene potentiell gute Klassen programmieren
--> gute Übersicht
--> gutes System
--> verständiss welches Script schneller, langsamer ist
--> etc.

Kann mir da jemand helfen?

Gruß oRigin

MatMel
16.05.2007, 14:29:16
Eine wirklich tolle Seite dazu hab ich noch nicht gefunden, aber diese hilft in manchen von den Sachen, die du angesprochen hast, weiter:
http://www.professionelle-softwareentwicklung-mit-php5.de/erste_auflage/tools.code-documentation.phpdocumentor.html

Opendix
20.05.2007, 02:27:47
jo, diese Seite finde ich auch noch gut.. ansonsten einfach mal bei google suchen... man findet überal mal wieder einen Artikel..


Gibt es zu dieser Beschriftung ein richtiges System? Sprich eine Internetseite wo steht wie man das am besten macht?
was macht eigentlich das @?

Ein System, nun ich denke man sollte für sich selbst entscheiden, was sinvoll ist, und was den Quellcode unnötig aufbläst!
Das "@" bezeichnet meinswissens einen Tag, welcher vom PHPDocumentor ausgewertet wird.


Was ist eigentlich besser?
'throw new Exeption' oder dass man eine Klasse programmiert, die die Error aufnimmt und ausgibt?

Öhm.. was meinst du mit einer Klasse, die den Fehler aufnimmt und ausgibt?


Und wenn man eine Ausnahme macht, bleibt das Script doch auch stehen bzw. es wird abgebrochen?
Ist da ein unterschied?

Nun gehen wir davon aus, dass du die Klasse MySql programmiert hast... diese kannst du nun ja in jedem von deinen Scripts verwenden um auf Mysql-Daten zuzugreiffen....
Wenn du nun da drin mit "die('Fehlermeldung..')" das Script abbrichst kannst du mit diesem Fehler nichts anfangen...
Folgendes kannst du jedoch machen, wenn du Exceptions verwendest:

try
{
$mysqlObject = new MySql();
$mysqlObject -> connect();
//kA, einfach irgendwas machen *g*
}
catch(Exception $ex)
{
//Sollte nun keine Verbindung möglich sein, wird die Exception geworfen und du kannst
//nun also in jedem Script individuell auf den Fehler eingehen...
//$ex -> Message enthält z.B. die Nachricht, welche man der Exception mitgegeben hat...
}



--> verständiss welches Script schneller, langsamer ist

einfach mal nach Performance und PHP bei google suchen.. ansonsten doch einfach selbst kleine Speed-Tests durchführen.. geht ganz einfach, wenn du danach bei google suchst, wirst du schnell fündig werden :)

feuervogel
20.05.2007, 08:56:01
--> verständiss welches Script schneller, langsamer ist


Du findest auf den Seiten der Unis, bei denen man Informatik studieren kann, sicher Folien zu "Algorithmen und Datenstrukturen". Dort steht eine Menge über das Berechnen der Laufzeit/des Speicherverbrauchs von Algorithmen usw usf