Lukas.: Brauche mal Hilfe zur Vorgehensweise beim Umstieg von MYSQL_* auf PDO

Hallo,

ich möchte sukkzessive in meinem Projekt von MYSQL_* auf PDO umsteigen. Sukkzessive, weil sicher mehr als 100 Dateien zu bearbeiten sind.

Nun ist es nicht nur der Umstieg auf PDO, sondern ich möchte gleichzeitig ein paar Einsteigerfehler aus vergangenen Tagen revidieren. Früher dachte ich, es sei nötig, vor jeder Query eine Verbindung zur DB herzustellen. Und anstatt das nun auszulagern, habe ich es nahezu hartkodiert auch vor jede Abfrage geschrieben.

Meine Scripte erstellen heute die Seite über ein Header->Inhalt->Footer Konstrukt.

Deshalb würde ich gerne in den Headerbereich den Verbindungsaufbau zur DB bringen und in den Footerbereich das Schließen dieser Verbindung.

  1. Ist das sinnvoll so oder habt Ihr andere Ideen?

Frage2: Kann ich während des Umbaus dieses Konzept bereits anwenden oder trage ich mit dem Öffnen und Schließen der "PDO-Verbindung" für die bereits umgestrickten Scripte (und Beibehaltung der noch nicht umgestrickten "MYSQL_*-Scripte" mit all ihren Verbindungsauf- und Abbauten) dann zuviel unnötigen Ballast mit mir herum.

L.

  1. Tach!

    Deshalb würde ich gerne in den Headerbereich den Verbindungsaufbau zur DB bringen und in den Footerbereich das Schließen dieser Verbindung.

    1. Ist das sinnvoll so oder habt Ihr andere Ideen?

    Schließen kannst du weglassen, das macht PHP sowieso am Script-Ende.

    Frage2: Kann ich während des Umbaus dieses Konzept bereits anwenden oder trage ich mit dem Öffnen und Schließen der "PDO-Verbindung" für die bereits umgestrickten Scripte (und Beibehaltung der noch nicht umgestrickten "MYSQL_*-Scripte" mit all ihren Verbindungsauf- und Abbauten) dann zuviel unnötigen Ballast mit mir herum.

    Mehr Ballast als vorher wird es nicht sein. Was in anderen Script, die gerade nicht aufgerufen werden, passiert, beziehungsweise eben nicht passiert, kann dir egal sein.

    dedlfix.

    1. Hi dedlfix,

      Schließen kannst du weglassen, das macht PHP sowieso am Script-Ende.

      Ist wahr? Schließt man DB-Verbindungen gar nicht mehr selber? Wußt ich nicht.

      Mehr Ballast als vorher wird es nicht sein. Was in anderen Script, die gerade nicht aufgerufen werden, passiert, beziehungsweise eben nicht passiert, kann dir egal sein.

      Na, ich dachte, wenn nun ein mysql_* Script aufgerufen wird und zusätzlich im Header des Scriptes über die PDO-Api ein Verbindungsaufbau hergestellt wird, habe ich eine unnütze offene Verbindung zur DB, nämlich die über PDO (die ja dann im Script gar nicht genutzt wird).

      Ist das egal?

      L.

      1. Hallo

        Mehr Ballast als vorher wird es nicht sein. Was in anderen Script, die gerade nicht aufgerufen werden, passiert, beziehungsweise eben nicht passiert, kann dir egal sein.

        Na, ich dachte, wenn nun ein mysql_* Script aufgerufen wird und zusätzlich im Header des Scriptes über die PDO-Api ein Verbindungsaufbau hergestellt wird, habe ich eine unnütze offene Verbindung zur DB, nämlich die über PDO (die ja dann im Script gar nicht genutzt wird).

        Ist das egal?

        Du solltest schon die Skripte, in denen du PDO einbindest, auch möglichst vollständig umstellen. Eine zusätzliche Verbindung sollte aber keine merkliche Beeinflussung der Performance verursachen.

        Tschö, Auge

        --
        Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
        Toller Dampf voraus von Terry Pratchett
      2. Tach!

        Schließen kannst du weglassen, das macht PHP sowieso am Script-Ende.

        Ist wahr? Schließt man DB-Verbindungen gar nicht mehr selber? Wußt ich nicht.

        Du kannst das machen, aber es hat keinen gesteigerten Wert. Es sei denn, das Script läuft noch ewig und blockiert damit eine Verbindung. Aber bei den üblichen Laufzeiten bringt es nichts.

        Mehr Ballast als vorher wird es nicht sein. Was in anderen Script, die gerade nicht aufgerufen werden, passiert, beziehungsweise eben nicht passiert, kann dir egal sein.

        Na, ich dachte, wenn nun ein mysql_* Script aufgerufen wird und zusätzlich im Header des Scriptes über die PDO-Api ein Verbindungsaufbau hergestellt wird, habe ich eine unnütze offene Verbindung zur DB, nämlich die über PDO (die ja dann im Script gar nicht genutzt wird).

        Ist das egal?

        Das macht das Kraut nicht wirklich fett. Außerdem dachte ich, du schreibst ein Script komplett um, so dass kein Mischbetrieb innerhalb des Scripts stattfindet. Aber selbst wenn, du wirst aller Voraussicht nach keine Nachteile merken.

        dedlfix.

        1. Das macht das Kraut nicht wirklich fett. Außerdem dachte ich, du schreibst ein Script komplett um, so dass kein Mischbetrieb innerhalb des Scripts stattfindet. Aber selbst wenn, du wirst aller Voraussicht nach keine Nachteile merken.

          Hi dedlfix, hi Auge,

          Ihr habt beide insofern recht, dass ich natürlich jedes Script komplett umschreibe. Aber die Scripte, die noch nicht umgeschrieben sind, beinhalten ja auch den Header, der bereits für PDO den Verbindungsaufbau macht. Insofern wird im Header über die PDO-Api eine Verbindung geöffnet und danach nur dann genutzt, wenn das script bereits umgeschrieben ist. Wenn das Script noch nicht umgeschrieben ist, wird zusätzlich zur offenen PDO-Verbindung eine mysql_* Verbindung geöffnet (muss ja bei den noch nicht umgeschriebenen...)

          L.

          1. Hallo

            … die Scripte, die noch nicht umgeschrieben sind, beinhalten ja auch den Header, der bereits für PDO den Verbindungsaufbau macht. Insofern wird im Header über die PDO-Api eine Verbindung geöffnet und danach nur dann genutzt, wenn das script bereits umgeschrieben ist.

            Wie gesagt, das ist eine ungenutzte Verbindung. Das macht den Kohl nicht fett.

            Tschö, Auge

            --
            Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
            Toller Dampf voraus von Terry Pratchett
            1. Wie gesagt, das ist eine ungenutzte Verbindung. Das macht den Kohl nicht fett.

              Danke, Auge. L.

          2. ...eigentlich kann ich auch, anstelle den Verbindungsaufbau im Headerscript zu plazieren, je Script eine "verbinde_zur_db.php" einbinden, dann kann ichs sauber trennen.

            L.

          3. Hi,

            Ihr habt beide insofern recht, dass ich natürlich jedes Script komplett umschreibe. Aber die Scripte, die noch nicht umgeschrieben sind, beinhalten ja auch den Header, der bereits für PDO den Verbindungsaufbau macht.

            warum sollten sie?

            Du hast einen bisherigen Header, der kein PDO macht. Und Du erzeugst einen neuen Header, der PDO macht.

            Scripte, die PDO benutzen, binden den neuen Header ein.

            cu,
            Andreas a/k/a MudGuard

  2. Hallo

    Deshalb würde ich gerne in den Headerbereich den Verbindungsaufbau zur DB bringen und in den Footerbereich das Schließen dieser Verbindung.

    Frage2: Kann ich während des Umbaus dieses Konzept bereits anwenden oder trage ich mit dem Öffnen und Schließen der "PDO-Verbindung" für die bereits umgestrickten Scripte (und Beibehaltung der noch nicht umgestrickten "MYSQL_*-Scripte" mit all ihren Verbindungsauf- und Abbauten) dann zuviel unnötigen Ballast mit mir herum.

    Du führst im Skript mit PDO nur eine Verbindungskennung mit, falls du nicht gerade mehrere brauchst. Die Kennungen der alten mysql_*-Verbindungen verwirfst du bisher jeweils nach der Ausführung einer Abfrage, wenn ich dich richtig verstanden habe. Sie liegen also auch nur solange im Speicher, bis du die Verbindung geschlossen hast. Da du für eine weitere Abfrage wieder eine neue Verbindung aufbaust, gibt es so ebenfalls zu einem Zeitpunkt/in einem Zeitraum nur jeweils eine Verbindung.

    Du hast also in der Übergangsphase zwei Verbindungen zu einem Zeitpunkt. Eine nach altem und eine nach neuem Schema. Das würde ich jetzt nicht gerade unter Ressourcenverschwendung einordnen. Wenn du jedes deinen Skripte zügig vom alten auf das neue System umbaust, hast du pro Skriptaufruf jeweils nur ein System (falls nicht zig Skripte eingebunden werden, die (noch) das jeweils andere System benutzen).

    Baue die Skripte einzeln, dann aber vollständig um und berücksichtige dabei, wenn nötig, einzubindende Skripte gleich mit.

    Tschö, Auge

    --
    Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
    Toller Dampf voraus von Terry Pratchett