Sven Rautenberg: Komplettes Projekt in OOP v2

Beitrag lesen

Moin!

class db{

private static $instance;

Diese Variable willst du nur protected haben, weil sie ggf. weitervererbt werden soll, wenn du die Klasse db erweiterst.

public static $db_host;
public static $db_user;
public static $db_pw;
public static $db_name;
public static $db_connection;

Diese ganzen Variablen gehören ebenfalls protected. Und als Namenskonvention: Protected- und Private-Variablen schreibt man mit einem Unterstrich als erstem Zeichen. Dann sieht man ihnen auf den ersten Blick ihre nichtöffentliche Zugriffsmöglichkeit an.

Konstruktor - private - kann nicht aufgerufen werden

private function __construct(){}

Dasselbe gilt für den Konstruktor. Protected, nicht private.

Datenbankwerte setzen

public static function db_set_vars($host,$name,$pw,$dbname){
$db_host=$host;
$db_user=$user;
$db_pw=$pw;
$db_name=$dbname;
}

Schon mal überlegt, was diese Funktion macht? Sie kopiert Daten - aber nicht in die Variablen der Klasse, sondern nur in lokale Variablen der Funktion!

Zur Datenbank verbinden

public static function db_connect()
    {
       $db_connection = new MySQLi($db_host,$db_user,$db_pw,$db_name);

Schon mal überlegt, wo diese Variablen herkommen? Mit Error-Level E_ALL hättest du hier viermal NOTICE gekriegt, weil du auf uninitialisierte lokale Variablen zugreifst.

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
     exit();

Ein sehr uneleganter Ausstieg. Aber das kriegen wir später... :)

} else {
    echo "alles korrekt";
   }
    }

Query ausführen

public static function db_query($query){
$db_connection->query($query);

Ebenfalls gilt hier: Worauf greifst du in Form von $db_connection zu? Tipp: Es ist nicht die in dem Objekt gespeicherte Variable $this->db_connection ... ;)

}

  
 - Sven Rautenberg
0 77

Komplettes Projekt in OOP v2

Chris
  • php
  1. 0
    Patrick Figel
  2. 0
    Sympathisant
    1. 0
      Chris
      1. 0
        Sympathisant
        1. 0
          Sven Rautenberg
          1. 0
            Sympathisant
      2. 1
        Sven Rautenberg
        1. 0
          dedlfix
      3. 0
        CHris
  3. 0
    Tom
    1. 0
      Chris
      1. 0
        Tom
      2. 0
        Sympathisant
        1. 0
          Tom
          1. 0
            Sven Rautenberg
            1. 0
              Tom
              1. 0
                Sympathisant
                1. 0
                  Tom
                  1. 0
                    Tom
                    1. 0
                      Sympathisant
                      1. 0
                        Tom
                        1. 0
                          dedlfix
                    2. 0
                      dedlfix
                  2. 0
                    Sympathisant
                    1. 0
                      Tom
                      1. 0
                        Sympathisant
                2. 0
                  Sven Rautenberg
                  1. 0
                    Tom
                    1. 0
                      dedlfix
                3. 0
                  dedlfix
                  1. 0
                    Sympathisant
                    1. 0
                      dedlfix
                      1. 0
                        Sympathisant
              2. 0
                dedlfix
                1. 0
                  Tom
          2. 0
            Sympathisant
        2. 0
          dedlfix
    2. 0
      dedlfix
      1. 0
        Tom
        1. 0
          dedlfix
          1. 0
            Tom
            1. 0
              dedlfix
              1. 0
                Tom
  4. 0

    PDF-Doku für OOP mit PHP5

    Tom
    1. 0
      dedlfix
      1. 0
        Tom
        1. 0
          dedlfix
  5. 0

    Und noch ein eBook für PHP OOP

    Tom
  6. 4
    dedlfix
    1. 0
      Tom
      1. 0
        dedlfix
  7. 0
    Chris
    1. 0
      dedlfix
      1. 0
        Chris
        1. 0
          Tom
          1. 0
            Chris
            1. 0
              Sympathisant
              1. 0
                Tom
        2. 0
          dedlfix
      2. 0
        Chris
        1. 0
          dedlfix
          1. 0
            Chris
            1. 0
              dedlfix
              1. 0
                Chris
                1. 1
                  dedlfix
                  1. 0
                    Chris
                    1. 0
                      dedlfix
                      1. 0
                        Chris
                        1. 0
                          dedlfix
                          1. 0
                            Chris
                            1. 0
                              Tom
                              1. 0
                                dedlfix
                            2. 0
                              dedlfix
                              1. 0
                                Chris
                                1. 0
                                  dedlfix
                                  1. 0
                                    Chris