php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2005, 00:12  
Benutzer
 
Registriert seit: 05.10.2004
Beiträge: 75
Spike_php
Standard Habe Mysql KLasse geschrieben, aber...

...ich weiß nicht ob sie sicher ist oder noch viel zu verbessern gibt, im Prinzip funktioniert die Klasse ja, aber wie gesagt könnt ihr mal drauf gucken ob es irgendwelche mängel gibt usw.

PS: Ist mein aller erster Versuch mit Klassen.


SCRIPT:

PHP-Code:
<?php
$db_host 
"localhost"//Server- bzw. Hostname, ist in den meisten Fällen localhost.
$db_user "root";         //Username der Datenbank.
$db_pw "";             //Passwort der Datenbank.
$db_name "newser";     //Name der Datenbank.

class db_class
{
    
    var 
$db_host '';
    var 
$db_user '';
    var 
$db_pw '';
    var 
$db_name '';
    
    function 
db_class($server$user$passwort$database)
    {
        
        
$this->db_host $server;
        
$this->db_user $user;
        
$this->db_pw $passwort;
        
$this->db_name $database;
        
$this->db_connect();
        
    }
    
    function 
db_connect()
    {
        
        if (!@
mysql_connect($this->db_host$this->db_user$this->db_pw))
        {
            
            echo 
"Es konnte keine Verbindung zum Server hergestellt werden, bitte überprüfen Sie ihre MySQL-Daten(Hostname, Username, Passwort).";
            exit;
            
        }
        
        if (!@
mysql_select_db($this->db_name))
        {

            echo 
"Es konnte keine Verbindung zur Datenbank [b]".$this->db_name."[/b] hergestellt werden, bitte überprüfen Sie ihre MySQL-Daten.";
            exit;

        }
        
    }
    
    function 
query($query_string)
    {
        
        return 
mysql_query($query_string);
        
    }
    
    function 
fetch_array($fetch_string)
    {

        return 
mysql_fetch_array($fetch_string);

    }
    
    function 
fetch_query($fetch_query)
    {

        
$this->fetch $this->query($fetch_query);
        return 
$this->fetch_array($this->fetch);

    }
    
    function 
num_rows($row_string)
    {

        return 
mysql_num_rows($this->query($row_string));

    }
    
    function 
close()
    {

        return 
mysql_close();

    }
    
}

$db = new db_class($db_host$db_user$db_pw$db_name);

//...............
//...............
//...............

$db->close();
?>
Spike_php ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.03.2005, 09:57  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hallo spike,

schöne übung hast du da gemacht, und meiner meinung nach gibt es genau eine sache zu verbessern:

erfinde das rad nicht neu und tue allen einen gefallen, indem du eine der standard-daten-abstraktions-layer-klassen wie ADODb oder PEAR :: DB oder creole etc. verwendest - damit kann man deine skripte besser verwenden und anpassen, wenn es mal nötig ist.

[edit]
ich wollt nur nochmal anmerken, dass ich das nicht fies oder abschätzend gemeint habe, aber es ist meine eigene erfahrung. ich hab mir auch selbst mehrere DB-klassen geschrieben, weil ich dachte, mein zeug sei schneller und leichtgewichtiger - und hab nicht drangedacht, dass ich damit bei änderungen und bei größer werdenden skripten immer wieder probleme haben werde.
[/edit]
axo ist offline   Mit Zitat antworten
Alt 25.03.2005, 10:06  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Eine Funktion/Methode sollte niemals selbst etwas ausgeben und immer einen Rückgabewert haben.

Innerhalb von Klassen benutzt man in den Namen von Variablen/Eigenschaften und Funktionen/Methoden standardmäßig keine Unterstriche, sondern Großbuchstaben um mehrere Wörter zu "trennen".

Aus var $db_host = ''; wird also var $dbHost = '';, aus function db_connect() wird function dbConnect() usw.
Corvin ist offline   Mit Zitat antworten
Alt 25.03.2005, 10:29  
Benutzer
 
Registriert seit: 05.10.2004
Beiträge: 75
Spike_php
Standard

Mhhh das leuchtet ein, aber sicher und sauber ist der Code nicht oder?
Spike_php ist offline   Mit Zitat antworten
Alt 25.03.2005, 10:43  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Ja, sicher ist der Code. Sauber ist er auch, aber da sind viel zu wenig Kommentare.

Beispiel für eine gut kommentierte Klasse:
PHP-Code:
<?php
/**
 * Diese Klasse dient dazu um zu zeigen,
 * wo Kommentare stehen sollten
 *
 */
class my
{
    
    
/**
     * Hier kommt der Text von x rein
     *
     * @var string
     */
    
var $myVar;
    
    
/**
     * In dieser Variable steht dies und das drin
     *
     * @var integer
     */
    
var $anotherVar;
    
    
/**
     * Diese Funktion mach das und das und anschließend macht sie
     * dies und das.
     *
     * @param integer $foo
     * @param string $bar
     * @return boolean
     */
    
function fooBar ($foo$bar) {
        
// Ist $foo gleich 5? Wenn ja Weise $myVar den Wert
        // von $foo zu
        
if ($foo == 5) {
            
//...
        
}
        
//...
        
return true;
    }        
}
?>

Und mach mal aus class db_class einfach class db .
Corvin ist offline   Mit Zitat antworten
Alt 25.03.2005, 10:50  
Benutzer
 
Registriert seit: 05.10.2004
Beiträge: 75
Spike_php
Standard

Heheh naja ich weiß ja was die ganze Eigenschaften für werte haben usw. ich habe bloß keine Kommentare verwendet, wiel es doch nur eine kleine Klasse ist und auch übersichtlich ist, wäre es eine Hammer klasse mit was weiß ich wie viel Zeilen würde ich auch Kommentare verwenden.

Aber trotzdem danke für den Tip.
Spike_php ist offline   Mit Zitat antworten
Alt 25.03.2005, 11:07  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Achso, hatte ich vergessen...
@axo:
Aber um den Umgang mit Klassen zu lernen/üben und um allgemein die PHP-Kenntnisse zu üben ist diese Klasse sicher eine gute Übung und deshalb würde es sich auch lohnen, die Klasse noch, unter Berücksichtigung meiner Tipps, zu erweitern.
Corvin ist offline   Mit Zitat antworten
Alt 26.03.2005, 20:41  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard

und wenn du jetzt noch mehr üben willst, schrieb die klasse noch so um, dass sie bei bedarf auch die mysqli extension verwenden kann
__________________
http://www.silvercoding.de
------------
ElePHPant Edit
konsti ist offline   Mit Zitat antworten
Alt 26.03.2005, 22:43  
Gast
 
Beiträge: n/a
Standard

übrigens, guter Thread.
Habe mir mittlerweile auch meine eigene kleine MySQL-Klasse geschrieben und übe fleissig damit
  Mit Zitat antworten
Alt 26.03.2005, 23:03  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ist ja alles schön und gut .. aber was nützt eine MySQL-Klasse, wenn der Rest des Quellcodes nicht objektorientiert ist?

Dann reichen auch die zur Verfügung gestellten PHP-Funktionen.
imported_Ben 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
eigene Klasse für mySql PW und UN Reen_Sc Datenbanken 4 09.07.2008 16:15
PHP + MySQL zwei Instanzen vertragen sich nicht Leisurelarry PHP Tipps 2008 11 04.10.2007 16:45
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
OOP => MySQL Klasse Kein Genie PHP Tipps 2007 16 16.03.2007 14:57
tutorial mysql klassen im oop projekt phpdummi Beitragsarchiv 4 17.01.2007 20:17
MySQL - Klasse: Wie da mysql_close benutzen Igäl PHP Tipps 2006 5 01.10.2006 23:09
mysql klasse - handling mehrerer connections mrSpok PHP Tipps 2006 5 14.04.2006 01:05
[Erledigt] Mysql 4.1.x unter php 4.3.9 Datenbanken 3 15.11.2005 13:49
Schnittstelle zwischen PHP und MySQL klappt net !!! Datenbanken 16 16.10.2005 14:24
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
[Erledigt] PHP5 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a m p; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
$db_user in klasse, eigene mysql klasse, eigene mysql classe schreiben, klassen als db_name :php, php exit in klassen benutzen, klasse geschrieben

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:25 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.