mysqli-Objekt teilen gute Idee?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mysqli-Objekt teilen gute Idee?

    Hallo!

    Gleich zum Problem:

    Ich erzeuge in meiner index.php mehrere Objete verschiedenen Typs, die alle für was anderes gut sind, aber so ziemlich alle eine MySQL-Connection brauchen.

    Was ist davon zu halten, wenn man in der index.php ganz oben einmal ein mysqli-Objekt erzeugt und dann per Konstruktor-Parameter an die einzelnen Klassen weiterverteilt - statt in jeder einzelnen Klasse intern ein eigenes mysqli-Objekt zu erstellen? Könnte es da irgendwo Krachen oder ist die gemeinsame Verwendung ok?

    Falls es ok ist: was müsste ich im Konstruktor dieser Klassen tun, um zu prüfen, ob das übergebene mysqli-Objekt valide/brauchbar ist? Reicht es, im Konstruktor einmal mysqli->ping() aufzurufen?

    Danke!

  • #2
    Abgesehen von der Art der Verteilung (über die sich die Geister auch garantiert hier wieder scheiden werden), spricht nichts dagegen beliebig viele Bezüge zu einem Objekt aufzubauen …
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Hallo,

      ich finde deine Vorgehensweise völlig in Ordnung und aus eigener Erfahrung auch unproblematisch. Trotzdem rate ich dazu, kein select_db zu benutzen, sondern alle Abfragen über den vollständig qualifizierenden Tabellennamen durchzuführen. Damit ist die Gefahr kleiner, Probleme mit Seiteneffekten und versteckten Abhängigkeiten zu bekommen.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Na, in einem Forum, in dem einige schon Schwierigkeiten haben Ihre Daten in verschiedene Tabellen zu verteilen, kann ich mir nicht vorstellen das auch noch mehrere Datenbanken verwendet werden ... *LOL*
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Nach meiner Erfahrung, sind nicht-persistente DB-Verbindungen die bessere Wahl. Eine DB-Verbindung sollte geöffnet und wieder geschlossen werden, wenn sie gebraucht wird. Du lässt Dein Auto ja auch nicht permanent laufen nur weil Du morgens zur Arbeit fährst und abends zurück.

          Gruß,
          tr-oo-per
          Zuletzt geändert von tr-oo-per; 30.05.2010, 15:24.

          Kommentar


          • #6
            Von einer persistenten Verbindung ist doch gar nicht die Rede gewesen … ?!
            [FONT="Helvetica"]twitter.com/unset[/FONT]

            Shitstorm Podcast – Wöchentliches Auskotzen

            Kommentar


            • #7
              Über Persistenz redet hier ja keiner....

              Und diese einfache Art von Constructor Injection ist doch völlig OK.

              So erzwingst du, dass nur "gültige" Mysqli Klassen übergeben werden können
              PHP-Code:
              class BraucheDb
              {
                public function 
              __construct(mysqli $dbhandler)
                {
                  
              // tuwas mit $dbhandler
                
              }


              Wir werden alle sterben

              Kommentar

              Lädt...
              X