Chris: Komplettes Projekt in OOP v2

Beitrag lesen

Hi.

»» Aber ich speicher sie doch lokal für den _einen_ Query ab, beim nächsten Query holt er sich doch eh eine neue Verbindung aufgrund _getConnection().
»» Oder sollte ich einfach überprüfen - ist eine DB-Verbindung vorhanden? wenn nicht, erstelle eine und speicher sie Klassenglobal als private static $db_connection und beim nächsten mal nehme die alte abgespeicherte Verbindung?

Genau das ist meine Intention von der Arbeitsweise von _getConnection(). Ein Singleton für die Verbindung beziehungsweise das mysqli-Objekt mit geöffneter Verbindung. Zum Verbindungsöffnen gehört ja auch noch das Aushandeln einer Zeichenkodierung und die Abfrage nach aufgetretenen Fehlern. Diesen Code will man nicht ständig zu jedem Verwendungsfall hinkopieren.

Also ich habe das jetzt mal so "ausformuliert":

  
private static $_db_connection;  
  
private static function _getConnection(){  
		  
		if(!self::$_db_connection instanceof mysqli){  
       		self::$_db_connection = new mysqli(self::$_db_host, self::$_db_user, self::$_db_pw, self::$_db_name);  
	   		if (mysqli_connect_errno()) {  
   				printf("Connect failed: %s\n", mysqli_connect_error());  
	   			exit();  
	   		}  
		}  
	  
	   return self::$_db_connection;  
    }  

Ach Mist. Das kommt davon, wenn man aus der Kalten was schreibt. PHP kennt kein finally. Da muss ich umbauen.

Danke.

Ich stoße jetzt vor ein neues Problem.
Und zwar lasse ich normale einfache RUDI-Statements zusammenbauen von db_create_normal_query(), diese baut den Query und führt ihn dann aus, sprich sie ruft am ende db_query() auf.

db_create_normal_query() gib mir also keinen Rückgabewert, das tut nur db_query. Ich habe meiner Ansicht nach nur die Alternative das ich 1. den Query baue und ihn zurückgebe und dann selber db_query aufbaue.

Gibt es irgendwie eine Möglichkeit, das ich das $result von db_query zurückbekomme, auch wenn ich db_create_normal_query() aufrufe.
Ich will mir halt praktisch eine Zeile sparen.
Statt:
[1]
$result=db_create_normal_query();

also:
[2]
$my_created_query=db_create_normal_query();
$result=db_query();

Fällt dir was ein wie ich [1] nutzen kann?

Wir würdest du das $result eigendlich "zu Papier" bringen?
Wenn ich eine Spalte "name" habe, dann greife ich darauf so:
echo $result[0]['name'];
zu. Das funktioniert, ich bekomme halt ein Doppelarray zurück.

Ich komme mal zur Fehlerbehandlung zurück.
Ich werde jetzt eine Log-Klasse schreiben, diese wird so arbeiten:

"Zuerst überprüfe die DB-Verbindung, wenn vorhanden, schreibe den Fehler in die Datenbank, wenn nicht, öffne die Log.txt und schreibe den Fehler dort rein."

Wenn ich diese Fehler im Adminpanel später aufrufen möchte:
"Lese die Fehler aus der Datenbenk und aus der Log.txt aus und zeige sie an."

Und noch einmal auf die Settings die man setzt.
Dafür will ich jetzt eine class.settings schreiben.
Allerdings weiß ich noch nicht wie ich das machen soll mit dem Daten holen aus einer TXT oder INI-Datei.
Ich werde es denk ich einfach so machen, das man die Daten per Hand in diese settings Klasse reinschreibt, zum Beispiel Seitenname, Domain, Firmenname, Datenbankverbindungsdaten.. usw..

lg,

chris

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