• Hallo zusammen!

    Habe nun meine erste Klasse (mySQL Klasse) fertig geschrieben, nur vermut ich mal, dass Sie einige Fehler hat bzw auf diese Weise nicht ganz funktionieren wird.

    Hier der Code:

    <?php


    /*
    *
    * MYSQL_CLASS
    *
    **/


    class

    mysql

    {



    public

    $con

    //---Daten fuer Verbindung


    public

    $host = 'localhost'; //DB Host

    public

    $username = 'xxxx'; //DB Username

    public

    $password = 'xxxxx'; //DB Password

    public

    $datenbank = 'xxxx'; // DB Datenbank

     
    //---Erste Methode: der "Konstruktor"
    public function __construct()


    $this->con = mysql_connect($this->host, $this->username, $this->password)
    or die ("Verbindung zur Datenbank fehlgeschlagen!"); //Verbindungsaufbau

    if ($this->con = true)
    {
    mysql_select_db($this->datenbank);//Datenbank auswahl
    }
    else
    {
    echo "Datenbank konnte nicht ausgew&auml;t werden.";
    }


    //---Zweite Methode: der "Destruktor"
    public function __destruct()
    {
    mysql_close($this->con);
    }
    }



    ?>



    Also erstmal eine Frage: Kann ich diese Klasse, für eine weitere Klasse (Login Klasse) verwenden? Wenn nicht, was müsste ich ändern?

    Die Eignenschaft $con bekommt erst bei der Verbindung einen wert zugewiesen, wenn die Verbindung klappt, bekommt sie true, falls true soll die Datenbank ausgewählt werden ansonsten soll eine Fehlermeldung ausgegeben werden.

    Muss ich der Eigenschaft $con schon am Anfang einen booleschen Wert zuweisen?


    Grüße

  • Augenlick mal. Du schreibst eine Klasse und wir sollen dir sagen, ob du die für andere Dinge benutzen kannst? Hallo?

    Zitat

    Muss ich der Eigenschaft $con schon am Anfang einen booleschen Wert zuweisen?


    Besser wär das.
    Aber mal ehrlich, wenn ich

    PHP
    if ($this->con = true)


    sehe, würde ich vorschlagen, dass du dich noch ein wenig mit den Grundlagen beschäftigst und/oder du deine Quellcodes vorher mal selber testest

  • Ähm, ich seh da drin 0 sinn. PHP bietet dir bereits die Klasse mysqli und wenn du am anfang vom script nen mysql_connect() reinhaust, dann kannst du ja sowieso überall mysql_query() machen. Ich sehe also keinen Sinn für sowas, auch hat die Klasse, die du hier zeigst, keinen praktischen nutzen, ausserdem ist der code fehlerhaft.

    Code
    Parse error: syntax error, unexpected T_PUBLIC, expecting ',' or ';' in C:\Programme\xampp\htdocs\test.php on line 26
    -- behoben --
    Parse error: syntax error, unexpected T_VARIABLE, expecting ';' or '{' in C:\Programme\xampp\htdocs\test.php on line 47
    -- behoben --
    Parse error: syntax error, unexpected T_PUBLIC in C:\Programme\xampp\htdocs\test.php on line 60


    Dein Konstruktor KANN nicht funktionieren, da du dort variaben verwendest, die man erst setzen kann, nachdem der konstruktor ausgeführt wurde, daher fürt ein new mysql() zwangsläufig zu

    Code
    Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'xxxx'@'localhost' (using password: YES) in C:\Programme\xampp\htdocs\test.php on line 47
    Verbindung zur Datenbank fehlgeschlagen!
    Warning: mysql_close() expects parameter 1 to be resource, boolean given in C:\Programme\xampp\htdocs\test.php on line 63


    Ob du as für einen login benutzen kannst, solltest besser du entscheiden. Das $con keinen Wert hat ist ein schönheitsfehler, letztlich aber egal. Ich halte es aber für Sinnbefreit, klassen verwenden zu wollen, wenn man nicht weiss, wie sie funktionieren und was die idee dahinter ist.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (13. September 2010 um 17:46)

  • Eine MYSQL Klasse ist absolut SINNLOS

    Eine DATENBANK Klasse wäre empfehlenswert

    Tobse genau deswegen baut man eine Datenbank klasse mit der man leicht auch zb oracle oder sqllite anbieten kann und nimmt nicht eine Klasse wie mysqli weil da nur MYSQL möglich ist


    mfg