bleicher: SQLite - datenbank synchronisation

Grüße,
ich habe ein neues brett vorm Kopf^^

angenomen-
 ich habe eine lokale MYSQLite-Datenbank
 diese will ich gelegentlich online sichern -
  dazu wollte ich alle datensätze deren time()>als die letzte sicherung ist
  per ein POST request an den server schicken.

(4 spalten - ID, name, nummer, status, datum)

die frage ist aber - was ist wenn ich ein datensatz bearbeite?
  sein zeitstempel wird zwar erneuert, aber der muss ja in die online-   version nicht INSERT sondern UPDATE werden >_< (blöd formuliert :()

eine möglichkeit wäre, jeden datensatz zu überprüfen - aber das würde voraussetzen dass ich mehr als 2 daten (1wert als variablenname + 2wert) übertrage - zumindest noch ID. bei übertragungsmethode "variable(name)=wert(nummer)", wären es 2 post-variablen : (ID=wert, ID=2wert etc.) pro tabellenzeile.

eine alternative wäre noch array_walk auf die $_POST in kombination mit explode(), sodass ich daten in form von ID=wert1#wert2 übetragen könnte.

scheint aber suboptimal

hätte jemand eine elegantere idee?

MFG
bleicher

--
__________________________-
Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
http://www.sexgott-or-not.com/?test=428054
  1. Hallo

    angenomen-
    ich habe eine lokale MYSQLite-Datenbank
    diese will ich gelegentlich online sichern -

    hätte jemand eine elegantere idee?

    nutze ein entsprechendes Log:

    <zitat quelle=Appropriate Uses For SQLite>
        Temporary triggers can be added to the database to record all changes into a
        (temporary) undo/redo log table. These changes can then be played back when
        the user presses the Undo and Redo buttons. Using this technique, an
        unlimited depth undo/redo implementation can be written in surprisingly
        little code.
    </zitat>

    Alternativ: Komprimiere die DB-Datei und sichere diese.

    Freundliche Grüße

    Vinzenz

    1. Grüße,
      dies ist möglich, aber nciht mein ziel - ich muss die mysqlite-kopie in sql-db form erstellen ;(
      MFG
      bleicher

      --
      __________________________-
      Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
      http://www.sexgott-or-not.com/?test=428054
      1. Hallo

        dies ist möglich, aber nciht mein ziel - ich muss die mysqlite-kopie in sql-db form erstellen ;(

        ich verstehe Dein Problem nicht. Es scheint hausgemacht zu sein - und Du scheinst unwillig zu sein, das Problem zu beseitigen. Manche Sachen sind übrigens ganz einfach:

        Jeder Datensatz trägt zwei Zeitstempel:

        - Erzeugung
         - letzte Änderung

        Wo ist das Problem?

        Freundliche Grüße

        Vinzenz

        1. Grüße,

          Wo ist das Problem?

          steht oben^^
          ich wollte es vermeiden erstzu überprüfen ob datensatz mit dieser ID schon exestiert - hoffte es ist möglich ein sqlite query der form "ändern oder erstellen falls id nicht exestiert" zu nutzen.

          MFG
          bleicher

          --
          __________________________-
          Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
          http://www.sexgott-or-not.com/?test=428054
          1. Hallo,

            Wo ist das Problem?
            steht oben^^

            seh' ich nichts. Könntest Du bitte genauer erläutern, was Du tun willst:

            a) eine Synchronisation:
               Dies geht am allereinfachsten durch einfaches Ersetzen der DB-Datei.
               Supereinfach, entspricht dem KISS-Prinzip.
               Wenn die Datenmenge nicht zu umfangreich ist, der zu bevorzugende Weg.

            b) Nutze das Query-Log
               Soll ebenfalls einfach sein. Probleme sind keine zu erwarten

            c) Selbstgestrickte Methode.
               Kompliziert und fehleranfällig. Zu vermeiden wenn es geht.

            Du willst unbedingt c) haben.

            ich wollte es vermeiden erstzu überprüfen ob datensatz mit dieser ID schon exestiert -

            obwohl Dir a) und b) genau diese Aufgabe abnehmen ...

            hoffte es ist möglich ein sqlite query der form "ändern oder erstellen falls id nicht exestiert" zu nutzen.

            ist das die wirkliche Frage? Ja? Warum hast Du nicht das Handbuch gelesen?

            SQLite kennt die Erweiterung [link:http://www.sqlite.org/lang_conflict.html@title=INSERT OR REPLACE] ...

            Freundliche Grüße

            Vinzenz

            1. Grüße,
              es tut mir leid - ich reite auf einem fehler seit stunden rum und merks nicht - die fragestellung besteht daraus, dass ich local SQLite und auf dem Server normales SQL habe -

              aber ich habs trotzdem mit dem OR lösen können^^ wennauch auf andere weise >_< brett vor dem kopf wars ja...
              MFG
              bleicher

              --
              __________________________-
              Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
              http://www.sexgott-or-not.com/?test=428054
              1. echo $begrüßung;

                es tut mir leid - ich reite auf einem fehler seit stunden rum und merks nicht - die fragestellung besteht daraus, dass ich local SQLite und auf dem Server normales SQL habe -

                Was bitte ist "normales SQL"? Wenn du damit standardisiertes SQL meinst, dann bleibt dir wohl nichts anderes übrig, als die vorherige Abfrage. Oder alternativ generell Update verwenden, und wenn die Anzahl der betroffenen Zeilen 0 ist Insert nachschieben. Alles andere ist proprietär.

                echo "$verabschiedung $name";

                1. Grüße,

                  Was bitte ist "normales SQL"? Wenn du damit standardisiertes SQL meinst, dann bleibt dir wohl nichts anderes übrig, als die vorherige Abfrage. Oder alternativ generell Update verwenden, und wenn die Anzahl der betroffenen Zeilen 0 ist Insert nachschieben. Alles andere ist proprietär.

                  ich habe das mit mysql_query("INSERT...") OR mysql_query("UPDATE...") gelöst.

                  MFG
                  bleicher

                  --
                  __________________________-
                  Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
                  http://www.sexgott-or-not.com/?test=428054