Einen Ergebnissatz aus einer Datenbank in einer anderen Datenbank speichern

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

  • Einen Ergebnissatz aus einer Datenbank in einer anderen Datenbank speichern

    Hey,

    ich möchte gerne aus der Tabelle einer Datenbank Datensätze abfragen und diese dann in der Tabelle einer anderen Datenbank speichern.

    Beispiel:
    Code:
    Öffne DB1
    $temp=Select name, geschlecht from mitarbeiter where geschlecht = w
    $ab=mysql_query(...);
    Schließe DB1
    
    Öffne DB2
    while($row=mysql_fetch_object($ab)) {
        INSERT INTO Tabelle (name, geschlecht) = ($row->name, $row->geschlecht) 
     }
    Schließe DB2
    Ich bin mir ziemlich sicher, daß das definitiv nicht der elganteste Weg - nur wird REPLACE INTO mit zwei unterschiedlichen Datenbanken wohl nicht funktionieren.

    DB2 liegt übrigens auf dem Server, auf dem das Script ausgeführt wird, während DB1 auf einem entfernten Server liegt - DB2 soll also nur zum Cachen verwendet werden.

    Daher wäre ein denkbarer Lösungsansatz auch einfach, das Array "$ab" in der zweiten Datenbank zu speichern und dann anstelle der konkreten Werte immer nur dieses ERegebnisarray abzufragen - aber wie das gehen soll, kann ich mir beim besten Willen nicht vorstellen.

    Vielleicht habt ihr eine Idee zur Umsetzung - oder vielleicht sogar einen völlig neuen Lösungsansatz, den ich verfolgen könnte ?!?

    Danke euch,
    Tobias
    Yeah !

  • #2
    Replikation wäre da vielleicht besser?!

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      hmm ich weis nich genau worauf du hinauswillst aber speicher doch
      deine datenbank in einem mehrdimensionalen array

      PHP-Code:
      <? $DB_1['tabelle1']['geschlecht']="..." ?>

      Kommentar


      • #4
        Replikation wäre da vielleicht besser?!
        Die Datenbank hat 43 Tabellen, die teilweise mehrere 100 MB groß sind.
        Diese eine Tabelle, deren Ergebnissatz ich cachen möchte wird zwar sehr häufig abgefragt - gibt aber nur selten voneinander abweichende Ergebnisse aus.

        speicher doch deine datenbank in einem mehrdimensionalen array
        Kann ich mehrdimensionale Arrays denn in der Datenbank speichern ?!?
        Yeah !

        Kommentar


        • #5
          dann würde ich es so machen wie du es aktuell hast, ab in einen Cronjob, wenn die Daten sich ändern, noch ein TRUNCATE vorne dran und bei jedem Aufruf alle Daten neu kopieren, ansonsten bei einem erneuten Aufruf nur die neuen Datensätze auslesen und fertig

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Man kann also Abfrageergebnisse - in diesem Falle "$ab" nicht konservieren und mehrfach nutzen ?!? *seufz*
            Yeah !

            Kommentar


            • #7
              Original geschrieben von DaGuertliz
              Man kann also Abfrageergebnisse - in diesem Falle "$ab" nicht konservieren und mehrfach nutzen ?!? *seufz*
              nein, $ab ist nur ein Pointer auf ein $result was im Ram ist, sobald das Skript beendet ist, ist alles weg.
              Du kannst natürlich alles in ein Array speichern und dann per serialize das irgendwo lagern und beim erneuten Aufruf dann per unserzialize wieder das Array bekommen, aber das würde ich bei großen Datenmengen nicht empfehlen.
              Wie gesagt, ich würde die Daten in eine temporäre Tabelle kopieren und ggf. updaten. Oder eben mit Replikation versuchen etwas zu reißen, aber das wird dann natürlich etwas komplizierter...

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Das ist ja verdammt schade ...

                Nun gut, dann werde ich einfach die Datensätze mit der kompletten html-Ausgabe, die daraus erzeugt werden soll in der zweiten Datenbank cachen ;-))

                Ich danke euch - wieder von einem Hirngespinst befreit ...
                Yeah !

                Kommentar

                Lädt...
                X