Wilhelm Kulzer: Probleme mit DBM-Funktionen!

Hallo!

Ich hab'n echtes Problem:
Wenn ich auf meinem PC (mit WAMPP) folgendes Script aufrufe,
dann bekomme ich eine Datei mit der Grösse von 14Bytes.

Führe ich jedoch das Script auf dem Webspace von meinem Provider
(1&1) aus, so bekomme ich eine Datei mit 1546Bytes.

Nun Ist es egal ob ich meine Lokale DB-datei "online"
oder die "Online-Datei" lokal auslesen will. Beides funktioniert
nicht..!!! (Zum zurücklesen habe ich natürlich die obrigen 3
Zeilen des Scripts auskommentiert, so dass nur gelesen wird!)

Kennt jemand evtl. des Rätsels Lösung??
Wer kann mir helfen?

Das script lautet:

<?php
//DB erzeugen... (später auskommentiert)
$handle = dbmopen("test.db", "c");
dbminsert($handle, "key1", "value1");
dbmclose($handle);
//DB zurücklesen...
$handle = dbmopen("test.db", "c");
echo dbmfetch($handle, "key1");
dbmclose($handle);
?>

Im Vorraus schonmal danke!
MfG
Wilhelm Kulzer

  1. Hallo Wilhelm,

    dann bekomme ich eine Datei mit der Grösse von 14Bytes.
    Führe ich jedoch das Script auf dem Webspace von meinem Provider
    (1&1) aus, so bekomme ich eine Datei mit 1546Bytes.

    Vielleicht ein unterschiedliches Format, probier mal dblist()

    Nun Ist es egal ob ich meine Lokale DB-datei "online"
    oder die "Online-Datei" lokal auslesen will. Beides funktioniert
    nicht..!!! (Zum zurücklesen habe ich natürlich die obrigen 3

    Kennt jemand evtl. des Rätsels Lösung??

    $handle = dbmopen("test.db", "c");
    dbminsert($handle, "key1", "value1");
    dbmclose($handle);

    $handle = dbmopen("test.db", "c");
    echo dbmfetch($handle, "key1");
    dbmclose($handle);

    Überprüfe die Rückgabewerte der einzelnen Funktionen, dann siehst Du,
    ob die Funktionen erfolgreich sind, bzw. was schief geht, siehe z.B.
    http://www.php.net/manual/de/function.dbminsert.php
    für die Rückgabewerte von dbminsert()

    Und probier für das Lesen eine angepasste Version von dem Beispiel in
    http://www.php.net/manual/de/ref.dbm.php

    Gruss,

    Vinzenz

    1. dbminsert()

      Hallo!

      Danke erstmal für deine Antwort!
      (seit 2 Wochen und 10 Foren die erste Antwort!)

      Mit dem obrigen Befehl bekomme ich 2 unterschiedliche
      Rückmeldungen:

      Lokal auf meinem PC: "flat file support enabled"
      Server bei 1&1: "This is GDBM version 1.8.0, as of May 19, 1999."

      Hab rausgefunden, das dies zwei unterschiedliche "Handler" sind.
      Bin aber auch nach 2 Stunden Google nicht schlauer geworden, wie ich diese GDBM-Version bei mir installieren kann...

      Hättest du noch'n Tipp für mich?
      Alles was ich gefunden habe, war unter www.gnu.org eine Linux-Version davon... (ist aber leider unter windows nicht sooo doll)

      MfG
      Wilhelm Kulzer

  2. Sorry, meinte natürlich dblist()!